diff --git a/HANDOFF.md b/HANDOFF.md
index 925d786..8f7b6e0 100644
--- a/HANDOFF.md
+++ b/HANDOFF.md
@@ -40,7 +40,7 @@ TERMINOLOGY (owner-corrected — use precisely):
`body_spike` "BODY: …", `collapse_spike` "COLLAPSE: …", `arm_spike` "ARM: overall PASS",
`sixdof_spike` "6DOF: overall PASS" (run FIRST with `weld_spike` whenever the addon binary changes),
`truebody_spike` "TRUEBODY: overall PASS" (no physics; plain `--headless`), `menu_spike` "MENU: overall PASS"
- (in-VR menu input injection, no XR). `ragdoll_spike` "RAGDOLL: overall PASS" (`-- only=a,b` runs the phases whose names contain a or b), `crag_spike` "CRAG: overall PASS" (layout geometry only). Only run the spikes your change touches — the full set takes a while. All nine PASS as of this handoff.
+ (in-VR menu input injection, no XR). `ragdoll_spike` "RAGDOLL: overall PASS" (`-- only=a,b` runs the phases whose names contain a or b), `crag_spike` "CRAG: overall PASS" (layout geometry of the SAVED crag scene; see Maps below). Only run the spikes your change touches — the full set takes a while. All nine PASS as of this handoff.
**Fresh checkout / new worktree: run `godot-mono --headless --import` FIRST** (it may segfault at
exit — harmless) — without `.godot/extension_list.cfg` the Box3D extension silently doesn't load,
Godot falls back to its default physics and weld/grab/arm/6dof spikes report CHECK. Headless asset import:
@@ -111,6 +111,16 @@ TERMINOLOGY (owner-corrected — use precisely):
- **Playground.cs** — the body sandbox around the table (east climbing/mantling, west physics toys, south
crawl/duck/door); dynamic pieces are "prop"s reset by the menu's Reset props. `tools/playground_shots.tscn` renders
overview PNGs (`godot-mono --path . tools/playground_shots.tscn --
`).
+- **Maps are EDITOR-BUILT scenes** (`MapScene.cs`): `scenes/maps/playground.tscn` and `scenes/maps/crag.tscn` (roots =
+ the `[Tool]` scripts Playground / Crag, instanced by main.tscn). The game NEVER regenerates them — it loads what is
+ saved, so hand edits in the editor stick. Regenerate from code with the map's inspector button "Rebuild (replaces
+ all children)" (open the map's own scene, then save), or headless for agents:
+ `godot-mono --headless --path . tools/rebuild_maps.tscn [-- only=playground|crag]` → "MAPS: rebuilt …" / "MAPS: done"
+ (rebuild REPLACES all children, discarding hand edits). After changing Playground.cs/Crag.cs builders, rebuild,
+ then run `crag_spike` (it checks the SAVED crag: route = the Marker3D children of its "Route" node, metadata
+ kind/label; route bodies in group `crag_route`, rock in `crag_mass`). Joint node paths are saved relative
+ (`../Name`); groups must be added persistent (`AddToGroup(g, true)`) or they aren't saved. `tools/map_dump.tscn`
+ dumps a layout (type/transform/size/groups) for before/after comparisons.
- **AnchorMoveMode.cs** is now SPECTATOR-only (`AnchorMoveMode.Enabled`, menu → Player → Spectator), where the
ragdoll is cleared; leaving rebuilds it at the current pose.
- **LEGACY (not in main.tscn since step 2; kept for their spikes): PhysicsHands / PhysicsTorso / PhysicsArms / BodyRig.**
diff --git a/scenes/main.tscn b/scenes/main.tscn
index 25f8679..ef1d8a9 100644
--- a/scenes/main.tscn
+++ b/scenes/main.tscn
@@ -10,8 +10,8 @@
[ext_resource type="Script" path="res://scripts/Calibration.cs" id="12_calibration"]
[ext_resource type="Script" path="res://scripts/TrueBody.cs" id="13_truebody"]
[ext_resource type="Script" path="res://scripts/PlayerRig.cs" id="14_playerrig"]
-[ext_resource type="Script" path="res://scripts/Playground.cs" id="15_playground"]
-[ext_resource type="Script" path="res://scripts/Crag.cs" id="16_crag"]
+[ext_resource type="PackedScene" path="res://scenes/maps/playground.tscn" id="15_playground"]
+[ext_resource type="PackedScene" path="res://scenes/maps/crag.tscn" id="16_crag"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_sky"]
sky_horizon_color = Color(0.66, 0.72, 0.81, 1)
@@ -109,11 +109,9 @@ script = ExtResource("3_locomotion")
[node name="AnchorMoveMode" type="Node" parent="."]
script = ExtResource("5_anchormove")
-[node name="Playground" type="Node3D" parent="."]
-script = ExtResource("15_playground")
+[node name="Playground" parent="." instance=ExtResource("15_playground")]
-[node name="Crag" type="Node3D" parent="."]
-script = ExtResource("16_crag")
+[node name="Crag" parent="." instance=ExtResource("16_crag")]
[node name="PropShop" type="Node3D" parent="."]
script = ExtResource("6_propshop")
diff --git a/scenes/maps/crag.tscn b/scenes/maps/crag.tscn
new file mode 100644
index 0000000..f61b132
--- /dev/null
+++ b/scenes/maps/crag.tscn
@@ -0,0 +1,4219 @@
+[gd_scene format=3]
+
+[ext_resource type="Script" path="res://scripts/Crag.cs" id="1"]
+[ext_resource type="PackedScene" path="res://scenes/teleport_marker.tscn" id="2_v0m8b"]
+[ext_resource type="Script" path="res://scripts/TeleportMarker.cs" id="3_s3tp4"]
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_v0m8b"]
+size = Vector3(12, 8, 7)
+
+[sub_resource type="BoxMesh" id="BoxMesh_s3tp4"]
+size = Vector3(12, 8, 7)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_snry6"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_wvjpr"]
+size = Vector3(10, 8, 5.5)
+
+[sub_resource type="BoxMesh" id="BoxMesh_dkatq"]
+size = Vector3(10, 8, 5.5)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_05sqj"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_nie6y"]
+size = Vector3(3.55, 10, 4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_mxl1w"]
+size = Vector3(3.55, 10, 4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6sdo5"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ke651"]
+size = Vector3(3.55, 10, 4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_1she3"]
+size = Vector3(3.55, 10, 4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y2vsw"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_etrwe"]
+size = Vector3(0.9, 10, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_51j02"]
+size = Vector3(0.9, 10, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bctw7"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_kdti7"]
+size = Vector3(1.3, 2.6, 1.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_6r0dp"]
+size = Vector3(1.3, 2.6, 1.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wmiab"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_cu25r"]
+size = Vector3(2.4, 5.5, 5)
+
+[sub_resource type="BoxMesh" id="BoxMesh_xldex"]
+size = Vector3(2.4, 5.5, 5)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yp8fi"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_yceac"]
+size = Vector3(2.8, 6.8, 5.5)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ujv6f"]
+size = Vector3(2.8, 6.8, 5.5)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vt3u8"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_adv4l"]
+size = Vector3(1.8, 5.5, 4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_dkrch"]
+size = Vector3(1.8, 5.5, 4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5p7np"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ja1xx"]
+size = Vector3(1.6, 3.6, 3.5)
+
+[sub_resource type="BoxMesh" id="BoxMesh_q882o"]
+size = Vector3(1.6, 3.6, 3.5)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_b2fqv"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_scqj0"]
+size = Vector3(1.4, 6, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_dc3ae"]
+size = Vector3(1.4, 6, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d3444"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3qqo7"]
+size = Vector3(1.5, 7.5, 3.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2kgfr"]
+size = Vector3(1.5, 7.5, 3.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rtu3h"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_0vb6v"]
+size = Vector3(9, 6, 1.8)
+
+[sub_resource type="BoxMesh" id="BoxMesh_fyjjs"]
+size = Vector3(9, 6, 1.8)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_n3f23"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_52jvf"]
+size = Vector3(6, 5, 1.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_6ia0h"]
+size = Vector3(6, 5, 1.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7fr13"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_5plk6"]
+size = Vector3(2.2, 4.4, 2.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_gy70j"]
+size = Vector3(2.2, 4.4, 2.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p538d"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_jusyc"]
+size = Vector3(2, 4.6, 2.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_sin4a"]
+size = Vector3(2, 4.6, 2.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hjndp"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_b1yft"]
+size = Vector3(1.6, 4, 2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_rv36h"]
+size = Vector3(1.6, 4, 2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hbsm6"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_wy3dh"]
+size = Vector3(1.8, 3.6, 2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0kq0x"]
+size = Vector3(1.8, 3.6, 2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gq5yk"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_dexoq"]
+size = Vector3(1.6, 4.4, 1.8)
+
+[sub_resource type="BoxMesh" id="BoxMesh_hyqb4"]
+size = Vector3(1.6, 4.4, 1.8)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x688n"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_fkj3y"]
+size = Vector3(1.6, 4.8, 1.8)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bcxa5"]
+size = Vector3(1.6, 4.8, 1.8)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_clfb6"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_fnrqe"]
+size = Vector3(2.6, 4.8, 2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_68e1m"]
+size = Vector3(2.6, 4.8, 2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uwydl"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_rcmts"]
+size = Vector3(2.3392923, 1.8, 1.6343154)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bicni"]
+size = Vector3(2.3392923, 1.8, 1.6343154)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1dug4"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_5qwu1"]
+size = Vector3(1.4342864, 1.2, 1.0338233)
+
+[sub_resource type="BoxMesh" id="BoxMesh_qm3bo"]
+size = Vector3(1.4342864, 1.2, 1.0338233)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1om8w"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_0ektu"]
+size = Vector3(2.123931, 2.2, 2.050148)
+
+[sub_resource type="BoxMesh" id="BoxMesh_omyp6"]
+size = Vector3(2.123931, 2.2, 2.050148)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cs6jd"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_csqya"]
+size = Vector3(1.2976284, 1.2, 1.0119839)
+
+[sub_resource type="BoxMesh" id="BoxMesh_x5amg"]
+size = Vector3(1.2976284, 1.2, 1.0119839)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sw6ok"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_53mk0"]
+size = Vector3(1.5486112, 1.4, 1.4142623)
+
+[sub_resource type="BoxMesh" id="BoxMesh_54lc8"]
+size = Vector3(1.5486112, 1.4, 1.4142623)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uo0ce"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_uadgr"]
+size = Vector3(1.0732067, 0.9, 0.98822856)
+
+[sub_resource type="BoxMesh" id="BoxMesh_mk4yk"]
+size = Vector3(1.0732067, 0.9, 0.98822856)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jv16"]
+albedo_color = Color(0.54, 0.5, 0.45, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_4qk36"]
+size = Vector3(2.9093246, 2.4, 2.1430714)
+
+[sub_resource type="BoxMesh" id="BoxMesh_3rh6d"]
+size = Vector3(2.9093246, 2.4, 2.1430714)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lhc5k"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_kg7t2"]
+size = Vector3(1.8994789, 1.6, 1.2860906)
+
+[sub_resource type="BoxMesh" id="BoxMesh_jctc5"]
+size = Vector3(1.8994789, 1.6, 1.2860906)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kxsbe"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_mchke"]
+size = Vector3(1.5620435, 1.107265, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0k3x7"]
+size = Vector3(1.5620435, 1.107265, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nq8od"]
+albedo_color = Color(0.43270165, 0.39587596, 0.35905027, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_cckmc"]
+size = Vector3(1.0823474, 0.95415485, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_v4ekr"]
+size = Vector3(1.0823474, 0.95415485, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7ydme"]
+albedo_color = Color(0.5044356, 0.46706998, 0.42036298, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_i3pa8"]
+size = Vector3(1.0234311, 0.65609723, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_qujyr"]
+size = Vector3(1.0234311, 0.65609723, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o3c0s"]
+albedo_color = Color(0.38748148, 0.36857995, 0.34967843, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_hbnf1"]
+size = Vector3(1.2837061, 0.71495175, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_syrlg"]
+size = Vector3(1.2837061, 0.71495175, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7pdsg"]
+albedo_color = Color(0.5371599, 0.49085304, 0.4352848, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_37lho"]
+size = Vector3(1.1011521, 1.0989277, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_d4uuj"]
+size = Vector3(1.1011521, 1.0989277, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lbl05"]
+albedo_color = Color(0.44735685, 0.40928394, 0.371211, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_q2b5r"]
+size = Vector3(1.5977833, 1.0386808, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_5ysk4"]
+size = Vector3(1.5977833, 1.0386808, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tmh5l"]
+albedo_color = Color(0.49932128, 0.4623345, 0.41610104, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_wuuha"]
+size = Vector3(1.6067414, 1.2243562, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_xbxac"]
+size = Vector3(1.6067414, 1.2243562, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1hj5b"]
+albedo_color = Color(0.4039981, 0.38429087, 0.36458364, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_rk117"]
+size = Vector3(1.770621, 0.7306683, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7k3r1"]
+size = Vector3(1.770621, 0.7306683, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_svshe"]
+albedo_color = Color(0.5516279, 0.50407374, 0.44700882, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_x4s4b"]
+size = Vector3(1.4279351, 0.98191875, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ilpnn"]
+size = Vector3(1.4279351, 0.98191875, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_03xh5"]
+albedo_color = Color(0.44991896, 0.41162798, 0.373337, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ystjr"]
+size = Vector3(1.2784119, 0.6139422, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_do7wh"]
+size = Vector3(1.2784119, 0.6139422, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u2n3y"]
+albedo_color = Color(0.49712792, 0.4603036, 0.41427323, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_cho6p"]
+size = Vector3(1.4227586, 0.74075454, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_iyobw"]
+size = Vector3(1.4227586, 0.74075454, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w2q4s"]
+albedo_color = Color(0.40912297, 0.38916573, 0.36920854, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3y7yt"]
+size = Vector3(1.3615181, 0.68335027, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4yms4"]
+size = Vector3(1.3615181, 0.68335027, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3q5df"]
+albedo_color = Color(0.57832795, 0.52847207, 0.46864507, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_22ul5"]
+size = Vector3(1.5221107, 0.65008634, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_6c5a6"]
+size = Vector3(1.5221107, 0.65008634, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4e1g1"]
+albedo_color = Color(0.44900137, 0.4107885, 0.3725756, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_rshqu"]
+size = Vector3(1.1919258, 1.3078213, 0.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4jt7m"]
+size = Vector3(1.1919258, 1.3078213, 0.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q86bc"]
+albedo_color = Color(0.53414583, 0.49457946, 0.4451215, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_nbkjl"]
+size = Vector3(1.4, 1.2, 1.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_dnd12"]
+size = Vector3(1.4, 1.2, 1.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_87bjv"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_xgr8m"]
+size = Vector3(1.4, 2.1, 1.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_5xxlf"]
+size = Vector3(1.4, 2.1, 1.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4j1dc"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_uun4j"]
+size = Vector3(1.5, 3, 1.6)
+
+[sub_resource type="BoxMesh" id="BoxMesh_88ayx"]
+size = Vector3(1.5, 3, 1.6)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r8xf2"]
+albedo_color = Color(0.41, 0.39, 0.37, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_tmi2n"]
+height = 6.0
+radius = 0.03
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_vcc0l"]
+top_radius = 0.03
+bottom_radius = 0.03
+height = 6.0
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wljrl"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_i6qn8"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_d5tar"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lrjaj"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_e4wrd"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4c2ip"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_b54b0"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_0xe5i"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0h58y"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jc3vp"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_sx2us"]
+height = 6.0
+radius = 0.03
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_lxydr"]
+top_radius = 0.03
+bottom_radius = 0.03
+height = 6.0
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bpxa8"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_6gi70"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_qaovb"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jgt08"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_yn1fr"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_6e4kg"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sv0tw"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_sisyp"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2ohyv"]
+size = Vector3(0.04, 0.04, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p8dcb"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_nlm00"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_fxqm5"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2l75p"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_s1pmj"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_if0uh"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tsvk8"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_6tphc"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_plbgp"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rrqcy"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_mmy0h"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_7qho7"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h1jha"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_ibt8s"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_o0eto"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ocgx2"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_56ch7"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_l313d"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_utm6i"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_iwmuj"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_0frkw"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3wgxy"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_18h8k"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_p86sr"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6kjdx"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_1nwvs"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_xaa4f"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s8u17"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_h0bd4"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_bpu1h"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3cheh"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_bjgaa"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_mwfo1"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_88erh"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_orp6f"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_8bdj4"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2jy26"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_t1of3"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_b25kj"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gp7uy"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_7v3yg"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_1if3w"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aimtc"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_rpi44"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_lbt0k"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jvko"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_bh47j"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_cwfhf"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7r4re"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_kokst"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_cusx3"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jkxvm"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_y0qv5"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_kfqmb"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_frajp"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_w8e8q"]
+height = 0.53999996
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_ddxnn"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.53999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jdbt"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_4ra8l"]
+height = 2.3999996
+radius = 0.03
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_ttkoj"]
+top_radius = 0.03
+bottom_radius = 0.03
+height = 2.3999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_un8bp"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_4rdo5"]
+size = Vector3(0.02, 0.45, 0.7)
+
+[sub_resource type="BoxMesh" id="BoxMesh_48c5m"]
+size = Vector3(0.02, 0.45, 0.7)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_db6w3"]
+albedo_color = Color(0.85, 0.15, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_pavee"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ri73e"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hrpi4"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_7gc4j"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ur1xe"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wk5ts"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_1u8m5"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_yexbb"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uvrpx"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_j17wu"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bpw1o"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cxxfx"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_o11g4"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_tnuip"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t1be7"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ouko4"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_45arp"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_slxo5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3dlty"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0celr"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cwge6"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_qihns"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0o3cn"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s7n22"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_56kv5"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ikhtq"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ltha6"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ltv6h"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_18xvr"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s61py"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_evtfc"]
+size = Vector3(8.2, 0.12, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_if64h"]
+size = Vector3(8.2, 0.12, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6y2hv"]
+albedo_color = Color(0.58, 0.53, 0.47, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_0l0gp"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7gbnl"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4rgqe"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_s8j8s"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ar6rv"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h60k6"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_y1jqa"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_78set"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qqux8"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_mdeb7"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_52pch"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ww4pb"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_klewb"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_yqjnx"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3ad1a"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_dgqrv"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_24mk4"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4o7go"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_4xx6y"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_n0mee"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ecsmt"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_7h026"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_8ofk5"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_l0lhm"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_bwmb8"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bh5f1"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u3ojd"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_grkoj"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_awgsr"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2klpk"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_l7phy"]
+size = Vector3(3, 0.6, 1.5)
+
+[sub_resource type="BoxMesh" id="BoxMesh_uyyuj"]
+size = Vector3(3, 0.6, 1.5)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x8aek"]
+albedo_color = Color(0.47, 0.43, 0.39, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_yitds"]
+height = 2.6000001
+radius = 0.025
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_dk1wv"]
+top_radius = 0.025
+bottom_radius = 0.025
+height = 2.6000001
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ppaw7"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_lkxds"]
+height = 0.17500019
+radius = 0.015
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_bxxsu"]
+top_radius = 0.015
+bottom_radius = 0.015
+height = 0.17500019
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kuk8x"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_x2v57"]
+height = 0.17500019
+radius = 0.015
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_j4r6f"]
+top_radius = 0.015
+bottom_radius = 0.015
+height = 0.17500019
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7moyc"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_y2qxs"]
+height = 2.6000001
+radius = 0.025
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_4df0i"]
+top_radius = 0.025
+bottom_radius = 0.025
+height = 2.6000001
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qowlk"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_5lnmf"]
+height = 0.17500019
+radius = 0.015
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_co83d"]
+top_radius = 0.015
+bottom_radius = 0.015
+height = 0.17500019
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v7bvj"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_v6d1s"]
+height = 0.17500019
+radius = 0.015
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_jcwje"]
+top_radius = 0.015
+bottom_radius = 0.015
+height = 0.17500019
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_n4kl1"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_jwmqq"]
+height = 2.6000001
+radius = 0.025
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_can5r"]
+top_radius = 0.025
+bottom_radius = 0.025
+height = 2.6000001
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rvmul"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_wmmro"]
+height = 0.17500019
+radius = 0.015
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_epe4p"]
+top_radius = 0.015
+bottom_radius = 0.015
+height = 0.17500019
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4vgr2"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_rxpqe"]
+height = 0.17500019
+radius = 0.015
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_pb5ff"]
+top_radius = 0.015
+bottom_radius = 0.015
+height = 0.17500019
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nmg08"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_lvrxu"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="BoxMesh" id="BoxMesh_d4v0o"]
+size = Vector3(0.3, 0.08, 0.12)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_i45tp"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_mnhej"]
+height = 2.6000001
+radius = 0.03
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_tfijq"]
+top_radius = 0.03
+bottom_radius = 0.03
+height = 2.6000001
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xdco5"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_mtk38"]
+height = 2.3999996
+radius = 0.03
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_aidgg"]
+top_radius = 0.03
+bottom_radius = 0.03
+height = 2.3999996
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_he3wn"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_qb6fu"]
+size = Vector3(0.02, 0.45, 0.7)
+
+[sub_resource type="BoxMesh" id="BoxMesh_cs7ax"]
+size = Vector3(0.02, 0.45, 0.7)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ukfby"]
+albedo_color = Color(0.85, 0.15, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_mmli7"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2y0hp"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3d1l5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_b8pa8"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_jnli2"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k4jqh"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_0nr71"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_g274r"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o8ywk"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_hvvw1"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_mr4xe"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w38s8"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_e43uw"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_auv0w"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2488n"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_wqnn4"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_16meo"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d771p"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_h6ptw"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4w661"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_syics"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_s035j"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_5q3vp"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bstld"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_1wtn2"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_w0y04"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rkbjq"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_idpor"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_a1qte"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u5v7o"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_hoqil"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_qwv7c"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1at23"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_t1fjj"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_whitw"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q2f63"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_g5u3u"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ie35i"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_csv88"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_islyj"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_dcb7d"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0iy7a"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_dermq"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_l0hwr"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pum65"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2qnh6"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bjrgp"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7h0ew"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_83tcd"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_e1e2f"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bkcg2"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_xm7q3"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_whfon"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sbdvc"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_aqayh"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ga2mi"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_itf5h"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_w1mrc"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_clgjp"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ine53"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_hj3gq"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_asqd4"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nyxvq"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_fp6bx"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_6diat"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_plo15"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_k4qn0"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_jkm0q"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_roxhh"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_odd27"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_la7oa"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_se51u"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_6wc80"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_fbdvl"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_atyg4"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_eipaw"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_6sy27"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_024ly"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3oy37"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_cnn6b"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_13dpv"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_wmt5p"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ne5y3"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7i8c5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_uyof5"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ybn7o"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jy4nf"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2tatq"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_tivb0"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fvrgo"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_rqc2s"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0fl00"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6o4bt"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_bsuq8"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_el71b"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dahde"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_5wvht"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ud68b"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3vo2d"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_qhvrd"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0gpv5"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cd373"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_imp1f"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7mf3n"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5miq5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2qnwn"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ojqp6"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_06m0l"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3fe6q"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_rcmyd"]
+size = Vector3(0.12, 0.08, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r17t6"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_qwxso"]
+height = 3.6000001
+radius = 0.18
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_ugobg"]
+top_radius = 0.18
+bottom_radius = 0.18
+height = 3.6000001
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_140bl"]
+albedo_color = Color(0.35, 0.25, 0.17, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_8ab1d"]
+size = Vector3(2.2, 3, 2.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2wr4d"]
+size = Vector3(2.2, 3, 2.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ncsok"]
+albedo_color = Color(0.25, 0.45, 0.22, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_f8dqw"]
+height = 4.2000003
+radius = 0.18
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_bo7gm"]
+top_radius = 0.18
+bottom_radius = 0.18
+height = 4.2000003
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3dqwx"]
+albedo_color = Color(0.35, 0.25, 0.17, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_a56d3"]
+size = Vector3(2.2, 3.5, 2.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_pnjao"]
+size = Vector3(2.2, 3.5, 2.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qjpjn"]
+albedo_color = Color(0.25, 0.45, 0.22, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_c37dw"]
+height = 3.3000002
+radius = 0.18
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_kxpiu"]
+top_radius = 0.18
+bottom_radius = 0.18
+height = 3.3000002
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_62j5g"]
+albedo_color = Color(0.35, 0.25, 0.17, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_st8ea"]
+size = Vector3(2.2, 2.75, 2.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_3ponm"]
+size = Vector3(2.2, 2.75, 2.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vq46m"]
+albedo_color = Color(0.25, 0.45, 0.22, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_fv3e7"]
+height = 3.9
+radius = 0.18
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_wa46t"]
+top_radius = 0.18
+bottom_radius = 0.18
+height = 3.9
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nyum8"]
+albedo_color = Color(0.35, 0.25, 0.17, 1)
+roughness = 0.9
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_xev1y"]
+size = Vector3(2.2, 3.25, 2.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_26gui"]
+size = Vector3(2.2, 3.25, 2.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2hyrf"]
+albedo_color = Color(0.25, 0.45, 0.22, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_hayo6"]
+height = 9.0
+radius = 0.35
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_f3vti"]
+top_radius = 0.35
+bottom_radius = 0.35
+height = 9.0
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_45bj4"]
+albedo_color = Color(0.7, 0.7, 0.68, 1)
+roughness = 0.9
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_im5ar"]
+height = 12.0
+radius = 0.35
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_o6nli"]
+top_radius = 0.35
+bottom_radius = 0.35
+height = 12.0
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h84kv"]
+albedo_color = Color(0.7, 0.7, 0.68, 1)
+roughness = 0.9
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_h2t7n"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_hk37o"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bjf5g"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wjv5s"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.9
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_5pbfj"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_cf25r"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_t7ctr"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lcsba"]
+albedo_color = Color(0.684, 0.5225, 0.31350002, 1)
+roughness = 0.9
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_urj8c"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_8ywpv"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4p830"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8t4uu"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.9
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_84p2p"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_w7l24"]
+height = 0.85
+radius = 0.28
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_vi2b5"]
+top_radius = 0.28
+bottom_radius = 0.28
+height = 0.85
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d4e40"]
+albedo_color = Color(0.68, 0.120000005, 0.120000005, 1)
+roughness = 0.9
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_te4hh"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="SphereShape3D" id="SphereShape3D_4otvp"]
+radius = 0.15
+
+[sub_resource type="SphereMesh" id="SphereMesh_yponk"]
+radius = 0.15
+height = 0.3
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f5h4v"]
+albedo_color = Color(0.95, 0.85, 0.2, 1)
+roughness = 0.9
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ficvs"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_30sv5"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_vev5g"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_th4vx"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.9
+
+[node name="Crag" type="Node3D" unique_id=1491658016]
+script = ExtResource("1")
+
+[node name="Route" type="Node3D" parent="." unique_id=1779598515]
+
+[node name="Stand" type="Marker3D" parent="Route" unique_id=636192716]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.6, 0, -8.2)
+metadata/kind = 0
+metadata/label = "start"
+
+[node name="Stand2" type="Marker3D" parent="Route" unique_id=1253536579]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.6, 1.2, -9.1)
+metadata/kind = 0
+metadata/label = "boulder 1 (mantle 1.2 m)"
+
+[node name="Stand3" type="Marker3D" parent="Route" unique_id=1565377582]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 1.2, -10.1)
+metadata/kind = 0
+metadata/label = "boulder 1 far edge"
+
+[node name="Stand4" type="Marker3D" parent="Route" unique_id=39025557]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 2.1, -10.7)
+metadata/kind = 0
+metadata/label = "boulder 2 (mantle 0.9 m)"
+
+[node name="Stand5" type="Marker3D" parent="Route" unique_id=1070571366]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.1, 2.1, -11.4)
+metadata/kind = 0
+metadata/label = "boulder 2 far edge"
+
+[node name="Stand6" type="Marker3D" parent="Route" unique_id=616884680]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.3, 3, -11.8)
+metadata/kind = 0
+metadata/label = "boulder 3 (hop 0.45 m gap, mantle 0.9 m)"
+
+[node name="Stand7" type="Marker3D" parent="Route" unique_id=1966304445]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 3, -12.5)
+metadata/kind = 0
+metadata/label = "foot of the ladder"
+
+[node name="Hold" type="Marker3D" parent="Route" unique_id=1268290803]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 3.342, -12.85)
+metadata/kind = 1
+metadata/label = "rung 3.3 m"
+
+[node name="Hold2" type="Marker3D" parent="Route" unique_id=295705549]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 3.642, -12.85)
+metadata/kind = 1
+metadata/label = "rung 3.6 m"
+
+[node name="Hold3" type="Marker3D" parent="Route" unique_id=946587967]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 3.942, -12.85)
+metadata/kind = 1
+metadata/label = "rung 3.9 m"
+
+[node name="Hold4" type="Marker3D" parent="Route" unique_id=1928418039]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 4.2419996, -12.85)
+metadata/kind = 1
+metadata/label = "rung 4.2 m"
+
+[node name="Hold5" type="Marker3D" parent="Route" unique_id=1513233660]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 4.542, -12.85)
+metadata/kind = 1
+metadata/label = "rung 4.5 m"
+
+[node name="Hold6" type="Marker3D" parent="Route" unique_id=82383240]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 4.842, -12.85)
+metadata/kind = 1
+metadata/label = "rung 4.8 m"
+
+[node name="Hold7" type="Marker3D" parent="Route" unique_id=1599560499]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 5.142, -12.85)
+metadata/kind = 1
+metadata/label = "rung 5.1 m"
+
+[node name="Hold8" type="Marker3D" parent="Route" unique_id=1542486780]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 5.4420004, -12.85)
+metadata/kind = 1
+metadata/label = "rung 5.4 m"
+
+[node name="Hold9" type="Marker3D" parent="Route" unique_id=826558566]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 5.7420006, -12.85)
+metadata/kind = 1
+metadata/label = "rung 5.7 m"
+
+[node name="Hold10" type="Marker3D" parent="Route" unique_id=1350370015]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 6.042001, -12.85)
+metadata/kind = 1
+metadata/label = "rung 6.0 m"
+
+[node name="Hold11" type="Marker3D" parent="Route" unique_id=753805773]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 6.342001, -12.85)
+metadata/kind = 1
+metadata/label = "rung 6.3 m"
+
+[node name="Hold12" type="Marker3D" parent="Route" unique_id=1745322659]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 6.642001, -12.85)
+metadata/kind = 1
+metadata/label = "rung 6.6 m"
+
+[node name="Hold13" type="Marker3D" parent="Route" unique_id=1202617895]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 6.9420013, -12.85)
+metadata/kind = 1
+metadata/label = "rung 6.9 m"
+
+[node name="Hold14" type="Marker3D" parent="Route" unique_id=886861682]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 7.2420015, -12.85)
+metadata/kind = 1
+metadata/label = "rung 7.2 m"
+
+[node name="Hold15" type="Marker3D" parent="Route" unique_id=1425178024]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 7.5420017, -12.85)
+metadata/kind = 1
+metadata/label = "rung 7.5 m"
+
+[node name="Hold16" type="Marker3D" parent="Route" unique_id=1342421031]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 7.842002, -12.85)
+metadata/kind = 1
+metadata/label = "rung 7.8 m"
+
+[node name="Hold17" type="Marker3D" parent="Route" unique_id=1428146098]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 8.142003, -12.85)
+metadata/kind = 1
+metadata/label = "rung 8.1 m"
+
+[node name="Hold18" type="Marker3D" parent="Route" unique_id=2104239715]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 8.442003, -12.85)
+metadata/kind = 1
+metadata/label = "rung 8.4 m"
+
+[node name="Hold19" type="Marker3D" parent="Route" unique_id=79783539]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 8.742003, -12.85)
+metadata/kind = 1
+metadata/label = "rung 8.7 m"
+
+[node name="Stand8" type="Marker3D" parent="Route" unique_id=287503759]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 8, -13.4)
+metadata/kind = 0
+metadata/label = "REST LEDGE 1 (8 m)"
+
+[node name="Stand9" type="Marker3D" parent="Route" unique_id=531743178]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 8, -14.1)
+metadata/kind = 0
+metadata/label = "foot of the jug wall"
+
+[node name="Hold20" type="Marker3D" parent="Route" unique_id=1299611438]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 9.06, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 9.00 m"
+
+[node name="Hold21" type="Marker3D" parent="Route" unique_id=804766794]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 9.51, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 9.45 m"
+
+[node name="Hold22" type="Marker3D" parent="Route" unique_id=1190112186]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 9.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 9.90 m"
+
+[node name="Hold23" type="Marker3D" parent="Route" unique_id=264604953]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 10.41, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 10.35 m"
+
+[node name="Hold24" type="Marker3D" parent="Route" unique_id=1975319667]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 10.86, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 10.80 m"
+
+[node name="Hold25" type="Marker3D" parent="Route" unique_id=1159901420]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 11.309999, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 11.25 m"
+
+[node name="Hold26" type="Marker3D" parent="Route" unique_id=1072027502]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 11.759999, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 11.70 m"
+
+[node name="Hold27" type="Marker3D" parent="Route" unique_id=1893685881]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 12.209999, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 12.15 m"
+
+[node name="Hold28" type="Marker3D" parent="Route" unique_id=958008438]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 12.659999, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 12.60 m"
+
+[node name="Hold29" type="Marker3D" parent="Route" unique_id=1564789361]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 13.109999, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 13.05 m"
+
+[node name="Hold30" type="Marker3D" parent="Route" unique_id=15386250]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 13.52, -14.08)
+metadata/kind = 1
+metadata/label = "traverse ledge lip"
+
+[node name="Stand10" type="Marker3D" parent="Route" unique_id=1073168173]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 13.5, -14.3)
+metadata/kind = 0
+metadata/label = "traverse ledge (0.4 m wide, 13.5 m)"
+
+[node name="Hold31" type="Marker3D" parent="Route" unique_id=1814623322]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold32" type="Marker3D" parent="Route" unique_id=9127911]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000001, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold33" type="Marker3D" parent="Route" unique_id=189899689]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold34" type="Marker3D" parent="Route" unique_id=558508042]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold35" type="Marker3D" parent="Route" unique_id=1196944275]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold36" type="Marker3D" parent="Route" unique_id=432866292]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold37" type="Marker3D" parent="Route" unique_id=148908764]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold38" type="Marker3D" parent="Route" unique_id=1569286518]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold39" type="Marker3D" parent="Route" unique_id=2083266937]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Hold40" type="Marker3D" parent="Route" unique_id=279651171]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 14.96, -14.419999)
+metadata/kind = 1
+metadata/label = "jug 14.90 m"
+
+[node name="Stand11" type="Marker3D" parent="Route" unique_id=460637150]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 13.5, -14.3)
+metadata/kind = 0
+metadata/label = "under the overhang"
+
+[node name="Hold41" type="Marker3D" parent="Route" unique_id=1460484063]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 15.155, -14.2)
+metadata/kind = 1
+metadata/label = "roof bar z -14.2"
+
+[node name="Hold42" type="Marker3D" parent="Route" unique_id=316334699]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 15.155, -13.7)
+metadata/kind = 1
+metadata/label = "roof bar z -13.7"
+
+[node name="Hold43" type="Marker3D" parent="Route" unique_id=719133492]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 15.155, -13.2)
+metadata/kind = 1
+metadata/label = "roof bar z -13.2"
+
+[node name="Hold44" type="Marker3D" parent="Route" unique_id=220805014]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 15.71, -12.919999)
+metadata/kind = 1
+metadata/label = "jug 15.65 m"
+
+[node name="Hold45" type="Marker3D" parent="Route" unique_id=54981006]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 16.08, -13.05)
+metadata/kind = 1
+metadata/label = "lip bar"
+
+[node name="Stand12" type="Marker3D" parent="Route" unique_id=1078452155]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 16, -13.6)
+metadata/kind = 0
+metadata/label = "REST LEDGE 2 (16 m)"
+
+[node name="Stand13" type="Marker3D" parent="Route" unique_id=1081057634]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 16, -15.6)
+metadata/kind = 0
+metadata/label = "mouth of the chimney"
+
+[node name="Hold46" type="Marker3D" parent="Route" unique_id=2112822871]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 16.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 16.70 m"
+
+[node name="Hold47" type="Marker3D" parent="Route" unique_id=1602994054]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 17.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 16.95 m"
+
+[node name="Hold48" type="Marker3D" parent="Route" unique_id=910953512]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 17.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 17.20 m"
+
+[node name="Hold49" type="Marker3D" parent="Route" unique_id=1046074029]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 17.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 17.45 m"
+
+[node name="Hold50" type="Marker3D" parent="Route" unique_id=256962323]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 17.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 17.70 m"
+
+[node name="Hold51" type="Marker3D" parent="Route" unique_id=1171814020]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 18.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 17.95 m"
+
+[node name="Hold52" type="Marker3D" parent="Route" unique_id=1170640585]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 18.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 18.20 m"
+
+[node name="Hold53" type="Marker3D" parent="Route" unique_id=1538938605]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 18.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 18.45 m"
+
+[node name="Hold54" type="Marker3D" parent="Route" unique_id=1931546680]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 18.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 18.70 m"
+
+[node name="Hold55" type="Marker3D" parent="Route" unique_id=826029156]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 19.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 18.95 m"
+
+[node name="Hold56" type="Marker3D" parent="Route" unique_id=1628838800]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 19.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 19.20 m"
+
+[node name="Hold57" type="Marker3D" parent="Route" unique_id=1502188960]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 19.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 19.45 m"
+
+[node name="Hold58" type="Marker3D" parent="Route" unique_id=814891649]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 19.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 19.70 m"
+
+[node name="Hold59" type="Marker3D" parent="Route" unique_id=468647416]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 20.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 19.95 m"
+
+[node name="Hold60" type="Marker3D" parent="Route" unique_id=1005142572]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 20.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 20.20 m"
+
+[node name="Hold61" type="Marker3D" parent="Route" unique_id=1304452689]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 20.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 20.45 m"
+
+[node name="Hold62" type="Marker3D" parent="Route" unique_id=1060838214]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 20.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 20.70 m"
+
+[node name="Hold63" type="Marker3D" parent="Route" unique_id=808402301]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 21.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 20.95 m"
+
+[node name="Hold64" type="Marker3D" parent="Route" unique_id=653546833]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 21.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 21.20 m"
+
+[node name="Hold65" type="Marker3D" parent="Route" unique_id=1733692552]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 21.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 21.45 m"
+
+[node name="Hold66" type="Marker3D" parent="Route" unique_id=659979255]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 21.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 21.70 m"
+
+[node name="Hold67" type="Marker3D" parent="Route" unique_id=864923764]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 22.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 21.95 m"
+
+[node name="Hold68" type="Marker3D" parent="Route" unique_id=1591967116]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 22.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 22.20 m"
+
+[node name="Hold69" type="Marker3D" parent="Route" unique_id=904936347]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 22.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 22.45 m"
+
+[node name="Hold70" type="Marker3D" parent="Route" unique_id=1714758249]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 22.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 22.70 m"
+
+[node name="Hold71" type="Marker3D" parent="Route" unique_id=194816948]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 23.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 22.95 m"
+
+[node name="Hold72" type="Marker3D" parent="Route" unique_id=1975807743]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 23.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 23.20 m"
+
+[node name="Hold73" type="Marker3D" parent="Route" unique_id=26914489]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 23.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 23.45 m"
+
+[node name="Hold74" type="Marker3D" parent="Route" unique_id=1014110725]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 23.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 23.70 m"
+
+[node name="Hold75" type="Marker3D" parent="Route" unique_id=332130426]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 24.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 23.95 m"
+
+[node name="Hold76" type="Marker3D" parent="Route" unique_id=1179179846]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 24.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 24.20 m"
+
+[node name="Hold77" type="Marker3D" parent="Route" unique_id=2102276616]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 24.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 24.45 m"
+
+[node name="Hold78" type="Marker3D" parent="Route" unique_id=1548946833]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 24.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 24.70 m"
+
+[node name="Hold79" type="Marker3D" parent="Route" unique_id=1855588301]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 25.01, -16.5)
+metadata/kind = 1
+metadata/label = "jug 24.95 m"
+
+[node name="Hold80" type="Marker3D" parent="Route" unique_id=928327403]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 25.26, -16.5)
+metadata/kind = 1
+metadata/label = "jug 25.20 m"
+
+[node name="Hold81" type="Marker3D" parent="Route" unique_id=632493542]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.36999997, 25.51, -16.5)
+metadata/kind = 1
+metadata/label = "jug 25.45 m"
+
+[node name="Hold82" type="Marker3D" parent="Route" unique_id=2108315111]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36999997, 25.76, -16.5)
+metadata/kind = 1
+metadata/label = "jug 25.70 m"
+
+[node name="Hold83" type="Marker3D" parent="Route" unique_id=1913459035]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.47, 26.02, -16.4)
+metadata/kind = 1
+metadata/label = "chimney exit lip"
+
+[node name="Stand14" type="Marker3D" parent="Route" unique_id=943331316]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 26, -16.6)
+metadata/kind = 0
+metadata/label = "SUMMIT (26 m)"
+
+[node name="TierA" type="StaticBody3D" parent="." unique_id=36742903 groups=["crag_mass"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@182" type="CollisionShape3D" parent="TierA" unique_id=730224855]
+shape = SubResource("BoxShape3D_v0m8b")
+
+[node name="@MeshInstance3D@183" type="MeshInstance3D" parent="TierA" unique_id=638132447]
+mesh = SubResource("BoxMesh_s3tp4")
+surface_material_override/0 = SubResource("StandardMaterial3D_snry6")
+
+[node name="TierB" type="StaticBody3D" parent="." unique_id=1317996047 groups=["crag_mass"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 12, -17.25)
+collision_mask = 29
+
+[node name="@CollisionShape3D@184" type="CollisionShape3D" parent="TierB" unique_id=966456629]
+shape = SubResource("BoxShape3D_wvjpr")
+
+[node name="@MeshInstance3D@185" type="MeshInstance3D" parent="TierB" unique_id=874167381]
+mesh = SubResource("BoxMesh_dkatq")
+surface_material_override/0 = SubResource("StandardMaterial3D_05sqj")
+
+[node name="TierCWest" type="StaticBody3D" parent="." unique_id=638565644 groups=["crag_mass"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.225, 21, -18)
+collision_mask = 29
+
+[node name="@CollisionShape3D@186" type="CollisionShape3D" parent="TierCWest" unique_id=663940280]
+shape = SubResource("BoxShape3D_nie6y")
+
+[node name="@MeshInstance3D@187" type="MeshInstance3D" parent="TierCWest" unique_id=1041199093]
+mesh = SubResource("BoxMesh_mxl1w")
+surface_material_override/0 = SubResource("StandardMaterial3D_6sdo5")
+
+[node name="TierCEast" type="StaticBody3D" parent="." unique_id=825437963 groups=["crag_mass"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.225, 21, -18)
+collision_mask = 29
+
+[node name="@CollisionShape3D@188" type="CollisionShape3D" parent="TierCEast" unique_id=1885096102]
+shape = SubResource("BoxShape3D_ke651")
+
+[node name="@MeshInstance3D@189" type="MeshInstance3D" parent="TierCEast" unique_id=1815110677]
+mesh = SubResource("BoxMesh_1she3")
+surface_material_override/0 = SubResource("StandardMaterial3D_y2vsw")
+
+[node name="TierCBack" type="StaticBody3D" parent="." unique_id=669054757 groups=["crag_mass"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 21, -18.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@190" type="CollisionShape3D" parent="TierCBack" unique_id=1734173900]
+shape = SubResource("BoxShape3D_etrwe")
+
+[node name="@MeshInstance3D@191" type="MeshInstance3D" parent="TierCBack" unique_id=1186531767]
+mesh = SubResource("BoxMesh_51j02")
+surface_material_override/0 = SubResource("StandardMaterial3D_bctw7")
+
+[node name="Spire" type="StaticBody3D" parent="." unique_id=2037470328 groups=["crag_mass"]]
+transform = Transform3D(0.9553365, 0, 0.29552022, 0, 1, 0, -0.29552022, 0, 0.9553365, 3.1, 27.3, -19.1)
+collision_mask = 29
+
+[node name="@CollisionShape3D@192" type="CollisionShape3D" parent="Spire" unique_id=588913324]
+shape = SubResource("BoxShape3D_kdti7")
+
+[node name="@MeshInstance3D@193" type="MeshInstance3D" parent="Spire" unique_id=2001341945]
+mesh = SubResource("BoxMesh_6r0dp")
+surface_material_override/0 = SubResource("StandardMaterial3D_wmiab")
+
+[node name="ShoulderWestA" type="StaticBody3D" parent="." unique_id=733310620 groups=["crag_mass"]]
+transform = Transform3D(0.99280864, 0, 0.119712204, 0, 1, 0, -0.119712204, 0, 0.99280864, -7, 2.75, -16.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@194" type="CollisionShape3D" parent="ShoulderWestA" unique_id=403309424]
+shape = SubResource("BoxShape3D_cu25r")
+
+[node name="@MeshInstance3D@195" type="MeshInstance3D" parent="ShoulderWestA" unique_id=768643162]
+mesh = SubResource("BoxMesh_xldex")
+surface_material_override/0 = SubResource("StandardMaterial3D_yp8fi")
+
+[node name="ShoulderEastA" type="StaticBody3D" parent="." unique_id=366544186 groups=["crag_mass"]]
+transform = Transform3D(0.9887711, 0, -0.14943814, 0, 1, 0, 0.14943814, 0, 0.9887711, 7.1, 3.4, -16.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@196" type="CollisionShape3D" parent="ShoulderEastA" unique_id=1987736446]
+shape = SubResource("BoxShape3D_yceac")
+
+[node name="@MeshInstance3D@197" type="MeshInstance3D" parent="ShoulderEastA" unique_id=332372520]
+mesh = SubResource("BoxMesh_ujv6f")
+surface_material_override/0 = SubResource("StandardMaterial3D_vt3u8")
+
+[node name="ShoulderEastB" type="StaticBody3D" parent="." unique_id=1069925188 groups=["crag_mass"]]
+transform = Transform3D(0.9950042, 0, 0.09983342, 0, 1, 0, -0.09983342, 0, 0.9950042, 5.6, 10.75, -17.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@198" type="CollisionShape3D" parent="ShoulderEastB" unique_id=271319011]
+shape = SubResource("BoxShape3D_adv4l")
+
+[node name="@MeshInstance3D@199" type="MeshInstance3D" parent="ShoulderEastB" unique_id=453375539]
+mesh = SubResource("BoxMesh_dkrch")
+surface_material_override/0 = SubResource("StandardMaterial3D_5p7np")
+
+[node name="ShoulderWestB" type="StaticBody3D" parent="." unique_id=512203856 groups=["crag_mass"]]
+transform = Transform3D(0.9800666, 0, -0.19866933, 0, 1, 0, 0.19866933, 0, 0.9800666, -5.5, 9.8, -18)
+collision_mask = 29
+
+[node name="@CollisionShape3D@200" type="CollisionShape3D" parent="ShoulderWestB" unique_id=773461190]
+shape = SubResource("BoxShape3D_ja1xx")
+
+[node name="@MeshInstance3D@201" type="MeshInstance3D" parent="ShoulderWestB" unique_id=1732045362]
+mesh = SubResource("BoxMesh_q882o")
+surface_material_override/0 = SubResource("StandardMaterial3D_b2fqv")
+
+[node name="ShoulderWestC" type="StaticBody3D" parent="." unique_id=1444412273 groups=["crag_mass"]]
+transform = Transform3D(0.9838437, 0, 0.17902958, 0, 1, 0, -0.17902958, 0, 0.9838437, -4.3, 19, -18.6)
+collision_mask = 29
+
+[node name="@CollisionShape3D@202" type="CollisionShape3D" parent="ShoulderWestC" unique_id=932334349]
+shape = SubResource("BoxShape3D_scqj0")
+
+[node name="@MeshInstance3D@203" type="MeshInstance3D" parent="ShoulderWestC" unique_id=1383951432]
+mesh = SubResource("BoxMesh_dc3ae")
+surface_material_override/0 = SubResource("StandardMaterial3D_d3444")
+
+[node name="ShoulderEastC" type="StaticBody3D" parent="." unique_id=869588220 groups=["crag_mass"]]
+transform = Transform3D(0.99280864, 0, -0.119712204, 0, 1, 0, 0.119712204, 0, 0.99280864, 4.4, 19.75, -18.4)
+collision_mask = 29
+
+[node name="@CollisionShape3D@204" type="CollisionShape3D" parent="ShoulderEastC" unique_id=1960094211]
+shape = SubResource("BoxShape3D_3qqo7")
+
+[node name="@MeshInstance3D@205" type="MeshInstance3D" parent="ShoulderEastC" unique_id=1930856461]
+mesh = SubResource("BoxMesh_2kgfr")
+surface_material_override/0 = SubResource("StandardMaterial3D_rtu3h")
+
+[node name="BackA" type="StaticBody3D" parent="." unique_id=284830937 groups=["crag_mass"]]
+transform = Transform3D(0.99820054, 0, 0.059964005, 0, 1, 0, -0.059964005, 0, 0.99820054, 0.5, 3, -20.6)
+collision_mask = 29
+
+[node name="@CollisionShape3D@206" type="CollisionShape3D" parent="BackA" unique_id=1682473078]
+shape = SubResource("BoxShape3D_0vb6v")
+
+[node name="@MeshInstance3D@207" type="MeshInstance3D" parent="BackA" unique_id=1257461619]
+mesh = SubResource("BoxMesh_fyjjs")
+surface_material_override/0 = SubResource("StandardMaterial3D_n3f23")
+
+[node name="BackB" type="StaticBody3D" parent="." unique_id=1946030723 groups=["crag_mass"]]
+transform = Transform3D(0.99680173, 0, -0.07991469, 0, 1, 0, 0.07991469, 0, 0.99680173, -0.8, 13.5, -20.4)
+collision_mask = 29
+
+[node name="@CollisionShape3D@208" type="CollisionShape3D" parent="BackB" unique_id=1161862849]
+shape = SubResource("BoxShape3D_52jvf")
+
+[node name="@MeshInstance3D@209" type="MeshInstance3D" parent="BackB" unique_id=1303292780]
+mesh = SubResource("BoxMesh_6ia0h")
+surface_material_override/0 = SubResource("StandardMaterial3D_7fr13")
+
+[node name="Corner0" type="StaticBody3D" parent="." unique_id=152507480 groups=["crag_mass"]]
+transform = Transform3D(0.93194413, 0.12104647, 0.34180114, -0.09951413, 0.9918219, -0.07991469, -0.34867918, 0.040461987, 0.93636835, 6.3, 5.6, -13.4)
+collision_mask = 29
+
+[node name="@CollisionShape3D@210" type="CollisionShape3D" parent="Corner0" unique_id=375200059]
+shape = SubResource("BoxShape3D_5plk6")
+
+[node name="@MeshInstance3D@211" type="MeshInstance3D" parent="Corner0" unique_id=78464122]
+mesh = SubResource("BoxMesh_gy70j")
+surface_material_override/0 = SubResource("StandardMaterial3D_p538d")
+
+[node name="Corner1" type="StaticBody3D" parent="." unique_id=964482339 groups=["crag_mass"]]
+transform = Transform3D(0.9199813, -0.050329905, -0.3887176, 0.079770885, 0.99500805, 0.059964005, 0.38375914, -0.08617411, 0.91940355, -6.6, 5.5, -13.6)
+collision_mask = 29
+
+[node name="@CollisionShape3D@212" type="CollisionShape3D" parent="Corner1" unique_id=658225270]
+shape = SubResource("BoxShape3D_jusyc")
+
+[node name="@MeshInstance3D@213" type="MeshInstance3D" parent="Corner1" unique_id=177546679]
+mesh = SubResource("BoxMesh_sin4a")
+surface_material_override/0 = SubResource("StandardMaterial3D_hjndp")
+
+[node name="Corner2" type="StaticBody3D" parent="." unique_id=931910764 groups=["crag_mass"]]
+transform = Transform3D(0.95199823, -0.085074805, 0.29404384, 0.119114146, 0.98784876, -0.09983342, -0.28197753, 0.130066, 0.95056385, 6.4, 12.4, -15.4)
+collision_mask = 29
+
+[node name="@CollisionShape3D@214" type="CollisionShape3D" parent="Corner2" unique_id=511010815]
+shape = SubResource("BoxShape3D_b1yft")
+
+[node name="@MeshInstance3D@215" type="MeshInstance3D" parent="Corner2" unique_id=1197853686]
+mesh = SubResource("BoxMesh_rv36h")
+surface_material_override/0 = SubResource("StandardMaterial3D_hbsm6")
+
+[node name="Corner3" type="StaticBody3D" parent="." unique_id=587647457 groups=["crag_mass"]]
+transform = Transform3D(0.93194413, 0.12104647, -0.34180114, -0.09951413, 0.9918219, 0.07991469, 0.34867918, -0.040461987, 0.93636835, -5.5, 13.6, -15.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@216" type="CollisionShape3D" parent="Corner3" unique_id=886920672]
+shape = SubResource("BoxShape3D_wy3dh")
+
+[node name="@MeshInstance3D@217" type="MeshInstance3D" parent="Corner3" unique_id=981915188]
+mesh = SubResource("BoxMesh_0kq0x")
+surface_material_override/0 = SubResource("StandardMaterial3D_gq5yk")
+
+[node name="Corner4" type="StaticBody3D" parent="." unique_id=1135664644 groups=["crag_mass"]]
+transform = Transform3D(0.91840255, -0.072587095, 0.38893166, 0.099708654, 0.9937607, -0.04997917, -0.38287714, 0.084680855, 0.9199099, 4.3, 23, -16.4)
+collision_mask = 29
+
+[node name="@CollisionShape3D@218" type="CollisionShape3D" parent="Corner4" unique_id=1918929265]
+shape = SubResource("BoxShape3D_dexoq")
+
+[node name="@MeshInstance3D@219" type="MeshInstance3D" parent="Corner4" unique_id=345768530]
+mesh = SubResource("BoxMesh_hyqb4")
+surface_material_override/0 = SubResource("StandardMaterial3D_x688n")
+
+[node name="Corner5" type="StaticBody3D" parent="." unique_id=1711339537 groups=["crag_mass"]]
+transform = Transform3D(0.95110077, 0.09106804, -0.2951509, -0.079814814, 0.995556, 0.04997917, 0.29839075, -0.023977812, 0.9541426, -4.4, 22.2, -16.6)
+collision_mask = 29
+
+[node name="@CollisionShape3D@220" type="CollisionShape3D" parent="Corner5" unique_id=1145832894]
+shape = SubResource("BoxShape3D_fkj3y")
+
+[node name="@MeshInstance3D@221" type="MeshInstance3D" parent="Corner5" unique_id=1562028009]
+mesh = SubResource("BoxMesh_bcxa5")
+surface_material_override/0 = SubResource("StandardMaterial3D_clfb6")
+
+[node name="Corner6" type="StaticBody3D" parent="." unique_id=1008920814 groups=["crag_mass"]]
+transform = Transform3D(0.9206478, 0.33606267, 0.19866933, -0.3428978, 0.9393727, 0, -0.18662454, -0.06812327, 0.9800666, 8.2, 2.4, -17.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@222" type="CollisionShape3D" parent="Corner6" unique_id=2027221472]
+shape = SubResource("BoxShape3D_fnrqe")
+
+[node name="@MeshInstance3D@223" type="MeshInstance3D" parent="Corner6" unique_id=1456408862]
+mesh = SubResource("BoxMesh_68e1m")
+surface_material_override/0 = SubResource("StandardMaterial3D_uwydl")
+
+[node name="Talus0" type="StaticBody3D" parent="." unique_id=922160266 groups=["crag_mass"]]
+transform = Transform3D(0.9988036, 0.03552046, 0.033610266, -0.030668696, 0.9903388, -0.13523506, -0.03808916, 0.13404249, 0.9902433, 9.5, 0.9, -13.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@224" type="CollisionShape3D" parent="Talus0" unique_id=757234277]
+shape = SubResource("BoxShape3D_rcmts")
+
+[node name="@MeshInstance3D@225" type="MeshInstance3D" parent="Talus0" unique_id=844486390]
+mesh = SubResource("BoxMesh_bicni")
+surface_material_override/0 = SubResource("StandardMaterial3D_1dug4")
+
+[node name="Talus1" type="StaticBody3D" parent="." unique_id=2135074675 groups=["crag_mass"]]
+transform = Transform3D(0.56277037, -0.045992553, -0.82533276, -0.013489658, 0.99780697, -0.06480207, 0.82650316, 0.047602147, 0.5609158, 11, 0.6, -16.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@226" type="CollisionShape3D" parent="Talus1" unique_id=468493694]
+shape = SubResource("BoxShape3D_5qwu1")
+
+[node name="@MeshInstance3D@227" type="MeshInstance3D" parent="Talus1" unique_id=796758906]
+mesh = SubResource("BoxMesh_qm3bo")
+surface_material_override/0 = SubResource("StandardMaterial3D_1om8w")
+
+[node name="Talus2" type="StaticBody3D" parent="." unique_id=992076437 groups=["crag_mass"]]
+transform = Transform3D(0.819807, -0.04326992, 0.5710028, 0.08161516, 0.9957904, -0.041717682, -0.566794, 0.08080293, 0.81988746, -9.6, 1.1, -14.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@228" type="CollisionShape3D" parent="Talus2" unique_id=1674508594]
+shape = SubResource("BoxShape3D_0ektu")
+
+[node name="@MeshInstance3D@229" type="MeshInstance3D" parent="Talus2" unique_id=316053700]
+mesh = SubResource("BoxMesh_omyp6")
+surface_material_override/0 = SubResource("StandardMaterial3D_cs6jd")
+
+[node name="Talus3" type="StaticBody3D" parent="." unique_id=313385972 groups=["crag_mass"]]
+transform = Transform3D(0.6854269, 0.08048917, 0.7236791, -0.024790794, 0.99587506, -0.087283, -0.72771925, 0.041885536, 0.6845949, -10.5, 0.6, -19.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@230" type="CollisionShape3D" parent="Talus3" unique_id=1058167549]
+shape = SubResource("BoxShape3D_csqya")
+
+[node name="@MeshInstance3D@231" type="MeshInstance3D" parent="Talus3" unique_id=460054193]
+mesh = SubResource("BoxMesh_x5amg")
+surface_material_override/0 = SubResource("StandardMaterial3D_sw6ok")
+
+[node name="Talus4" type="StaticBody3D" parent="." unique_id=1718482361 groups=["crag_mass"]]
+transform = Transform3D(0.9521058, 0.08184577, -0.29461128, -0.041619755, 0.98923194, 0.14031382, 0.302923, -0.12133196, 0.94525987, 6.5, 0.7, -11.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@232" type="CollisionShape3D" parent="Talus4" unique_id=1810839381]
+shape = SubResource("BoxShape3D_53mk0")
+
+[node name="@MeshInstance3D@233" type="MeshInstance3D" parent="Talus4" unique_id=422041819]
+mesh = SubResource("BoxMesh_54lc8")
+surface_material_override/0 = SubResource("StandardMaterial3D_uo0ce")
+
+[node name="Talus5" type="StaticBody3D" parent="." unique_id=2029228853 groups=["crag_mass"]]
+transform = Transform3D(0.98964626, 0.07009173, 0.12524925, -0.07897882, 0.9945916, 0.06745311, -0.119843945, -0.07664675, 0.9898296, -8.3, 0.45, -11.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@234" type="CollisionShape3D" parent="Talus5" unique_id=878031099]
+shape = SubResource("BoxShape3D_uadgr")
+
+[node name="@MeshInstance3D@235" type="MeshInstance3D" parent="Talus5" unique_id=1066442755]
+mesh = SubResource("BoxMesh_mk4yk")
+surface_material_override/0 = SubResource("StandardMaterial3D_1jv16")
+
+[node name="Talus6" type="StaticBody3D" parent="." unique_id=82621821 groups=["crag_mass"]]
+transform = Transform3D(0.9759679, 0.016594023, -0.217282, 0.0052934755, 0.9949969, 0.09976556, 0.21785043, -0.098518156, 0.9709971, 4, 1.2, -23)
+collision_mask = 29
+
+[node name="@CollisionShape3D@236" type="CollisionShape3D" parent="Talus6" unique_id=1213110757]
+shape = SubResource("BoxShape3D_4qk36")
+
+[node name="@MeshInstance3D@237" type="MeshInstance3D" parent="Talus6" unique_id=576570263]
+mesh = SubResource("BoxMesh_3rh6d")
+surface_material_override/0 = SubResource("StandardMaterial3D_lhc5k")
+
+[node name="Talus7" type="StaticBody3D" parent="." unique_id=1186781004 groups=["crag_mass"]]
+transform = Transform3D(0.65803456, -0.00884752, -0.75293577, -0.13602476, 0.98208344, -0.13042015, 0.74059963, 0.18823886, 0.64504135, -5, 0.8, -23.4)
+collision_mask = 29
+
+[node name="@CollisionShape3D@238" type="CollisionShape3D" parent="Talus7" unique_id=1981113301]
+shape = SubResource("BoxShape3D_kg7t2")
+
+[node name="@MeshInstance3D@239" type="MeshInstance3D" parent="Talus7" unique_id=1928613700]
+mesh = SubResource("BoxMesh_jctc5")
+surface_material_override/0 = SubResource("StandardMaterial3D_kxsbe")
+
+[node name="Rubble0" type="StaticBody3D" parent="." unique_id=533275719 groups=["crag_mass"]]
+transform = Transform3D(0.98490256, -0.1324932, -0.11141194, 0.12318102, 0.9885892, -0.08670564, 0.121628545, 0.07167277, 0.98998463, 3.5, 1.2, -12.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@240" type="CollisionShape3D" parent="Rubble0" unique_id=1115007474]
+shape = SubResource("BoxShape3D_mchke")
+
+[node name="@MeshInstance3D@241" type="MeshInstance3D" parent="Rubble0" unique_id=1739621498]
+mesh = SubResource("BoxMesh_0k3x7")
+surface_material_override/0 = SubResource("StandardMaterial3D_nq8od")
+
+[node name="Rubble1" type="StaticBody3D" parent="." unique_id=1774487965 groups=["crag_mass"]]
+transform = Transform3D(0.9670737, -0.089197285, -0.23835327, 0.109516636, 0.9912722, 0.07338636, 0.22972709, -0.097073674, 0.9684019, 5, 3.5, -12.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@242" type="CollisionShape3D" parent="Rubble1" unique_id=1609982154]
+shape = SubResource("BoxShape3D_cckmc")
+
+[node name="@MeshInstance3D@243" type="MeshInstance3D" parent="Rubble1" unique_id=265835626]
+mesh = SubResource("BoxMesh_v4ekr")
+surface_material_override/0 = SubResource("StandardMaterial3D_7ydme")
+
+[node name="Rubble2" type="StaticBody3D" parent="." unique_id=1202630308 groups=["crag_mass"]]
+transform = Transform3D(0.9906143, 0.12584421, 0.053353388, -0.13139014, 0.98429865, 0.117868, -0.03768266, -0.12377184, 0.991595, 1.6, 5.6, -12.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@244" type="CollisionShape3D" parent="Rubble2" unique_id=1135407444]
+shape = SubResource("BoxShape3D_i3pa8")
+
+[node name="@MeshInstance3D@245" type="MeshInstance3D" parent="Rubble2" unique_id=1963294475]
+mesh = SubResource("BoxMesh_qujyr")
+surface_material_override/0 = SubResource("StandardMaterial3D_o3c0s")
+
+[node name="Rubble3" type="StaticBody3D" parent="." unique_id=464909903 groups=["crag_mass"]]
+transform = Transform3D(0.9990975, -0.042212628, -0.0047189356, 0.042273417, 0.9990132, 0.013624425, 0.0041391565, -0.013811615, 0.99989605, 4.2, 6.8, -12.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@246" type="CollisionShape3D" parent="Rubble3" unique_id=1728761260]
+shape = SubResource("BoxShape3D_hbnf1")
+
+[node name="@MeshInstance3D@247" type="MeshInstance3D" parent="Rubble3" unique_id=2058206845]
+mesh = SubResource("BoxMesh_syrlg")
+surface_material_override/0 = SubResource("StandardMaterial3D_7pdsg")
+
+[node name="Rubble4" type="StaticBody3D" parent="." unique_id=1289742578 groups=["crag_mass"]]
+transform = Transform3D(0.9931994, -0.10519363, -0.04989247, 0.10920747, 0.99028814, 0.08604096, 0.040356964, -0.09090446, 0.99504155, -0.2, 2.4, -12.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@248" type="CollisionShape3D" parent="Rubble4" unique_id=478512179]
+shape = SubResource("BoxShape3D_37lho")
+
+[node name="@MeshInstance3D@249" type="MeshInstance3D" parent="Rubble4" unique_id=893675302]
+mesh = SubResource("BoxMesh_d4uuj")
+surface_material_override/0 = SubResource("StandardMaterial3D_lbl05")
+
+[node name="Rubble5" type="StaticBody3D" parent="." unique_id=1854543241 groups=["crag_mass"]]
+transform = Transform3D(0.9918335, 0.11195531, -0.061093025, -0.118334316, 0.9864806, -0.11337135, 0.04757456, 0.119674906, 0.99167264, 0.4, 10.2, -14.3)
+collision_mask = 29
+
+[node name="@CollisionShape3D@250" type="CollisionShape3D" parent="Rubble5" unique_id=463854641]
+shape = SubResource("BoxShape3D_q2b5r")
+
+[node name="@MeshInstance3D@251" type="MeshInstance3D" parent="Rubble5" unique_id=2031975654]
+mesh = SubResource("BoxMesh_5ysk4")
+surface_material_override/0 = SubResource("StandardMaterial3D_tmh5l")
+
+[node name="Rubble6" type="StaticBody3D" parent="." unique_id=2071211101 groups=["crag_mass"]]
+transform = Transform3D(0.99699664, -0.058165673, -0.051131543, 0.061686218, 0.99562323, 0.07020822, 0.04682404, -0.07315147, 0.996221, -1.2, 11.6, -14.3)
+collision_mask = 29
+
+[node name="@CollisionShape3D@252" type="CollisionShape3D" parent="Rubble6" unique_id=1026321715]
+shape = SubResource("BoxShape3D_wuuha")
+
+[node name="@MeshInstance3D@253" type="MeshInstance3D" parent="Rubble6" unique_id=1969415851]
+mesh = SubResource("BoxMesh_xbxac")
+surface_material_override/0 = SubResource("StandardMaterial3D_1hj5b")
+
+[node name="Rubble7" type="StaticBody3D" parent="." unique_id=1937664998 groups=["crag_mass"]]
+transform = Transform3D(0.9897382, 0.08012156, -0.11831639, -0.08848829, 0.99380547, -0.06723498, 0.112196505, 0.07701464, 0.9906971, -4.5, 11, -14.3)
+collision_mask = 29
+
+[node name="@CollisionShape3D@254" type="CollisionShape3D" parent="Rubble7" unique_id=2078222759]
+shape = SubResource("BoxShape3D_rk117")
+
+[node name="@MeshInstance3D@255" type="MeshInstance3D" parent="Rubble7" unique_id=446461083]
+mesh = SubResource("BoxMesh_7k3r1")
+surface_material_override/0 = SubResource("StandardMaterial3D_svshe")
+
+[node name="Rubble8" type="StaticBody3D" parent="." unique_id=258108610 groups=["crag_mass"]]
+transform = Transform3D(0.97907543, -0.14404942, -0.14373967, 0.13727376, 0.9889464, -0.05604429, 0.15022399, 0.035139907, 0.98802733, -6.1, 4, -14.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@256" type="CollisionShape3D" parent="Rubble8" unique_id=1395139193]
+shape = SubResource("BoxShape3D_x4s4b")
+
+[node name="@MeshInstance3D@257" type="MeshInstance3D" parent="Rubble8" unique_id=1940176283]
+mesh = SubResource("BoxMesh_ilpnn")
+surface_material_override/0 = SubResource("StandardMaterial3D_03xh5")
+
+[node name="Rubble9" type="StaticBody3D" parent="." unique_id=717545213 groups=["crag_mass"]]
+transform = Transform3D(0.99201745, -0.10099712, 0.07550471, 0.1009728, 0.99488056, 0.0041493205, -0.075537235, 0.003507723, 0.99713683, 6.2, 7.5, -14.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@258" type="CollisionShape3D" parent="Rubble9" unique_id=1013048028]
+shape = SubResource("BoxShape3D_ystjr")
+
+[node name="@MeshInstance3D@259" type="MeshInstance3D" parent="Rubble9" unique_id=1820362833]
+mesh = SubResource("BoxMesh_do7wh")
+surface_material_override/0 = SubResource("StandardMaterial3D_u2n3y")
+
+[node name="Rubble10" type="StaticBody3D" parent="." unique_id=1268425345 groups=["crag_mass"]]
+transform = Transform3D(0.9998721, 0.013658298, 0.008319874, -0.013750126, 0.9998441, 0.011081751, -0.008167218, -0.011194733, 0.999904, -3.6, 20.5, -15.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@260" type="CollisionShape3D" parent="Rubble10" unique_id=129643759]
+shape = SubResource("BoxShape3D_cho6p")
+
+[node name="@MeshInstance3D@261" type="MeshInstance3D" parent="Rubble10" unique_id=1821472391]
+mesh = SubResource("BoxMesh_iyobw")
+surface_material_override/0 = SubResource("StandardMaterial3D_w2q4s")
+
+[node name="Rubble11" type="StaticBody3D" parent="." unique_id=1999056849 groups=["crag_mass"]]
+transform = Transform3D(0.98421496, 0.023069618, 0.17546678, -0.0194738, 0.9995642, -0.02218743, -0.17590214, 0.018420197, 0.9842353, 3.2, 22.8, -15.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@262" type="CollisionShape3D" parent="Rubble11" unique_id=50591956]
+shape = SubResource("BoxShape3D_3y7yt")
+
+[node name="@MeshInstance3D@263" type="MeshInstance3D" parent="Rubble11" unique_id=1832601175]
+mesh = SubResource("BoxMesh_4yms4")
+surface_material_override/0 = SubResource("StandardMaterial3D_3q5df")
+
+[node name="Rubble12" type="StaticBody3D" parent="." unique_id=1233907539 groups=["crag_mass"]]
+transform = Transform3D(0.97184056, -0.10588562, 0.21050906, 0.10988733, 0.9939167, -0.0073701893, -0.20844808, 0.030294929, 0.9775641, -2.4, 24.6, -15.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@264" type="CollisionShape3D" parent="Rubble12" unique_id=355161848]
+shape = SubResource("BoxShape3D_22ul5")
+
+[node name="@MeshInstance3D@265" type="MeshInstance3D" parent="Rubble12" unique_id=1748271638]
+mesh = SubResource("BoxMesh_6c5a6")
+surface_material_override/0 = SubResource("StandardMaterial3D_4e1g1")
+
+[node name="Rubble13" type="StaticBody3D" parent="." unique_id=974888290 groups=["crag_mass"]]
+transform = Transform3D(0.9935589, 0.06227754, 0.094669186, -0.057655726, 0.99704325, -0.050798412, -0.09755287, 0.045012992, 0.9942119, 1.8, 18.4, -15.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@266" type="CollisionShape3D" parent="Rubble13" unique_id=1659677426]
+shape = SubResource("BoxShape3D_rshqu")
+
+[node name="@MeshInstance3D@267" type="MeshInstance3D" parent="Rubble13" unique_id=1515233715]
+mesh = SubResource("BoxMesh_4jt7m")
+surface_material_override/0 = SubResource("StandardMaterial3D_q86bc")
+
+[node name="Boulder1" type="StaticBody3D" parent="." unique_id=1580917474 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.6, 0.6, -9.6)
+collision_mask = 29
+
+[node name="@CollisionShape3D@268" type="CollisionShape3D" parent="Boulder1" unique_id=1017641992]
+shape = SubResource("BoxShape3D_nbkjl")
+
+[node name="@MeshInstance3D@269" type="MeshInstance3D" parent="Boulder1" unique_id=825467615]
+mesh = SubResource("BoxMesh_dnd12")
+surface_material_override/0 = SubResource("StandardMaterial3D_87bjv")
+
+[node name="Boulder2" type="StaticBody3D" parent="." unique_id=2031980261 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.6, 1.05, -11.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@270" type="CollisionShape3D" parent="Boulder2" unique_id=824528229]
+shape = SubResource("BoxShape3D_xgr8m")
+
+[node name="@MeshInstance3D@271" type="MeshInstance3D" parent="Boulder2" unique_id=493850351]
+mesh = SubResource("BoxMesh_5xxlf")
+surface_material_override/0 = SubResource("StandardMaterial3D_4j1dc")
+
+[node name="Boulder3" type="StaticBody3D" parent="." unique_id=419697905 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 1.5, -12.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@272" type="CollisionShape3D" parent="Boulder3" unique_id=29866097]
+shape = SubResource("BoxShape3D_uun4j")
+
+[node name="@MeshInstance3D@273" type="MeshInstance3D" parent="Boulder3" unique_id=1490962049]
+mesh = SubResource("BoxMesh_88ayx")
+surface_material_override/0 = SubResource("StandardMaterial3D_r8xf2")
+
+[node name="LadderRail" type="StaticBody3D" parent="." unique_id=1429679666 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 6, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@274" type="CollisionShape3D" parent="LadderRail" unique_id=16392507]
+shape = SubResource("CylinderShape3D_tmi2n")
+
+[node name="@MeshInstance3D@275" type="MeshInstance3D" parent="LadderRail" unique_id=732913894]
+mesh = SubResource("CylinderMesh_vcc0l")
+surface_material_override/0 = SubResource("StandardMaterial3D_wljrl")
+
+[node name="LadderStandoff" type="StaticBody3D" parent="." unique_id=1252302634 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 4, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@276" type="CollisionShape3D" parent="LadderStandoff" unique_id=584716314]
+shape = SubResource("BoxShape3D_i6qn8")
+
+[node name="@MeshInstance3D@277" type="MeshInstance3D" parent="LadderStandoff" unique_id=2031384650]
+mesh = SubResource("BoxMesh_d5tar")
+surface_material_override/0 = SubResource("StandardMaterial3D_lrjaj")
+
+[node name="LadderStandoff2" type="StaticBody3D" parent="." unique_id=1132695728 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 6, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@278" type="CollisionShape3D" parent="LadderStandoff2" unique_id=770234423]
+shape = SubResource("BoxShape3D_e4wrd")
+
+[node name="@MeshInstance3D@279" type="MeshInstance3D" parent="LadderStandoff2" unique_id=185699204]
+mesh = SubResource("BoxMesh_4c2ip")
+surface_material_override/0 = SubResource("StandardMaterial3D_b54b0")
+
+[node name="LadderStandoff3" type="StaticBody3D" parent="." unique_id=1712820140 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 8, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@280" type="CollisionShape3D" parent="LadderStandoff3" unique_id=2029401208]
+shape = SubResource("BoxShape3D_0xe5i")
+
+[node name="@MeshInstance3D@281" type="MeshInstance3D" parent="LadderStandoff3" unique_id=721284646]
+mesh = SubResource("BoxMesh_0h58y")
+surface_material_override/0 = SubResource("StandardMaterial3D_jc3vp")
+
+[node name="LadderRail2" type="StaticBody3D" parent="." unique_id=1420973558 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 6, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@282" type="CollisionShape3D" parent="LadderRail2" unique_id=507716649]
+shape = SubResource("CylinderShape3D_sx2us")
+
+[node name="@MeshInstance3D@283" type="MeshInstance3D" parent="LadderRail2" unique_id=1760773939]
+mesh = SubResource("CylinderMesh_lxydr")
+surface_material_override/0 = SubResource("StandardMaterial3D_bpxa8")
+
+[node name="LadderStandoff4" type="StaticBody3D" parent="." unique_id=35568564 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 4, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@284" type="CollisionShape3D" parent="LadderStandoff4" unique_id=601000645]
+shape = SubResource("BoxShape3D_6gi70")
+
+[node name="@MeshInstance3D@285" type="MeshInstance3D" parent="LadderStandoff4" unique_id=262319286]
+mesh = SubResource("BoxMesh_qaovb")
+surface_material_override/0 = SubResource("StandardMaterial3D_jgt08")
+
+[node name="LadderStandoff5" type="StaticBody3D" parent="." unique_id=1866985354 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 6, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@286" type="CollisionShape3D" parent="LadderStandoff5" unique_id=353895880]
+shape = SubResource("BoxShape3D_yn1fr")
+
+[node name="@MeshInstance3D@287" type="MeshInstance3D" parent="LadderStandoff5" unique_id=31132589]
+mesh = SubResource("BoxMesh_6e4kg")
+surface_material_override/0 = SubResource("StandardMaterial3D_sv0tw")
+
+[node name="LadderStandoff6" type="StaticBody3D" parent="." unique_id=135952993 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 8, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@288" type="CollisionShape3D" parent="LadderStandoff6" unique_id=732105620]
+shape = SubResource("BoxShape3D_sisyp")
+
+[node name="@MeshInstance3D@289" type="MeshInstance3D" parent="LadderStandoff6" unique_id=430678759]
+mesh = SubResource("BoxMesh_2ohyv")
+surface_material_override/0 = SubResource("StandardMaterial3D_p8dcb")
+
+[node name="Rung" type="StaticBody3D" parent="." unique_id=891181052 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 3.3, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@290" type="CollisionShape3D" parent="Rung" unique_id=652149837]
+shape = SubResource("CylinderShape3D_nlm00")
+
+[node name="@MeshInstance3D@291" type="MeshInstance3D" parent="Rung" unique_id=1513743195]
+mesh = SubResource("CylinderMesh_fxqm5")
+surface_material_override/0 = SubResource("StandardMaterial3D_2l75p")
+
+[node name="Rung2" type="StaticBody3D" parent="." unique_id=20777318 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 3.6, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@292" type="CollisionShape3D" parent="Rung2" unique_id=238152715]
+shape = SubResource("CylinderShape3D_s1pmj")
+
+[node name="@MeshInstance3D@293" type="MeshInstance3D" parent="Rung2" unique_id=853999888]
+mesh = SubResource("CylinderMesh_if0uh")
+surface_material_override/0 = SubResource("StandardMaterial3D_tsvk8")
+
+[node name="Rung3" type="StaticBody3D" parent="." unique_id=238014966 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 3.8999999, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@294" type="CollisionShape3D" parent="Rung3" unique_id=1331181531]
+shape = SubResource("CylinderShape3D_6tphc")
+
+[node name="@MeshInstance3D@295" type="MeshInstance3D" parent="Rung3" unique_id=1473322297]
+mesh = SubResource("CylinderMesh_plbgp")
+surface_material_override/0 = SubResource("StandardMaterial3D_rrqcy")
+
+[node name="Rung4" type="StaticBody3D" parent="." unique_id=1263059743 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 4.2, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@296" type="CollisionShape3D" parent="Rung4" unique_id=2019997829]
+shape = SubResource("CylinderShape3D_mmy0h")
+
+[node name="@MeshInstance3D@297" type="MeshInstance3D" parent="Rung4" unique_id=849093368]
+mesh = SubResource("CylinderMesh_7qho7")
+surface_material_override/0 = SubResource("StandardMaterial3D_h1jha")
+
+[node name="Rung5" type="StaticBody3D" parent="." unique_id=1671957845 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 4.5, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@298" type="CollisionShape3D" parent="Rung5" unique_id=1466631300]
+shape = SubResource("CylinderShape3D_ibt8s")
+
+[node name="@MeshInstance3D@299" type="MeshInstance3D" parent="Rung5" unique_id=1482206061]
+mesh = SubResource("CylinderMesh_o0eto")
+surface_material_override/0 = SubResource("StandardMaterial3D_ocgx2")
+
+[node name="Rung6" type="StaticBody3D" parent="." unique_id=2144370527 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 4.8, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@300" type="CollisionShape3D" parent="Rung6" unique_id=1721264475]
+shape = SubResource("CylinderShape3D_56ch7")
+
+[node name="@MeshInstance3D@301" type="MeshInstance3D" parent="Rung6" unique_id=1631660680]
+mesh = SubResource("CylinderMesh_l313d")
+surface_material_override/0 = SubResource("StandardMaterial3D_utm6i")
+
+[node name="Rung7" type="StaticBody3D" parent="." unique_id=1562162815 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 5.1000004, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@302" type="CollisionShape3D" parent="Rung7" unique_id=1667825968]
+shape = SubResource("CylinderShape3D_iwmuj")
+
+[node name="@MeshInstance3D@303" type="MeshInstance3D" parent="Rung7" unique_id=2037020412]
+mesh = SubResource("CylinderMesh_0frkw")
+surface_material_override/0 = SubResource("StandardMaterial3D_3wgxy")
+
+[node name="Rung8" type="StaticBody3D" parent="." unique_id=595375098 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 5.4000006, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@304" type="CollisionShape3D" parent="Rung8" unique_id=1839842769]
+shape = SubResource("CylinderShape3D_18h8k")
+
+[node name="@MeshInstance3D@305" type="MeshInstance3D" parent="Rung8" unique_id=1699610456]
+mesh = SubResource("CylinderMesh_p86sr")
+surface_material_override/0 = SubResource("StandardMaterial3D_6kjdx")
+
+[node name="Rung9" type="StaticBody3D" parent="." unique_id=20741838 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 5.700001, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@306" type="CollisionShape3D" parent="Rung9" unique_id=2120887506]
+shape = SubResource("CylinderShape3D_1nwvs")
+
+[node name="@MeshInstance3D@307" type="MeshInstance3D" parent="Rung9" unique_id=1540253514]
+mesh = SubResource("CylinderMesh_xaa4f")
+surface_material_override/0 = SubResource("StandardMaterial3D_s8u17")
+
+[node name="Rung10" type="StaticBody3D" parent="." unique_id=327946165 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 6.000001, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@308" type="CollisionShape3D" parent="Rung10" unique_id=1618911965]
+shape = SubResource("CylinderShape3D_h0bd4")
+
+[node name="@MeshInstance3D@309" type="MeshInstance3D" parent="Rung10" unique_id=1529720502]
+mesh = SubResource("CylinderMesh_bpu1h")
+surface_material_override/0 = SubResource("StandardMaterial3D_3cheh")
+
+[node name="Rung11" type="StaticBody3D" parent="." unique_id=1407035632 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 6.300001, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@310" type="CollisionShape3D" parent="Rung11" unique_id=1056027784]
+shape = SubResource("CylinderShape3D_bjgaa")
+
+[node name="@MeshInstance3D@311" type="MeshInstance3D" parent="Rung11" unique_id=423694258]
+mesh = SubResource("CylinderMesh_mwfo1")
+surface_material_override/0 = SubResource("StandardMaterial3D_88erh")
+
+[node name="Rung12" type="StaticBody3D" parent="." unique_id=1117618926 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 6.6000013, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@312" type="CollisionShape3D" parent="Rung12" unique_id=835630740]
+shape = SubResource("CylinderShape3D_orp6f")
+
+[node name="@MeshInstance3D@313" type="MeshInstance3D" parent="Rung12" unique_id=1612315835]
+mesh = SubResource("CylinderMesh_8bdj4")
+surface_material_override/0 = SubResource("StandardMaterial3D_2jy26")
+
+[node name="Rung13" type="StaticBody3D" parent="." unique_id=1018552400 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 6.9000015, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@314" type="CollisionShape3D" parent="Rung13" unique_id=1487003216]
+shape = SubResource("CylinderShape3D_t1of3")
+
+[node name="@MeshInstance3D@315" type="MeshInstance3D" parent="Rung13" unique_id=1374527542]
+mesh = SubResource("CylinderMesh_b25kj")
+surface_material_override/0 = SubResource("StandardMaterial3D_gp7uy")
+
+[node name="Rung14" type="StaticBody3D" parent="." unique_id=68044082 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 7.2000017, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@316" type="CollisionShape3D" parent="Rung14" unique_id=822615760]
+shape = SubResource("CylinderShape3D_7v3yg")
+
+[node name="@MeshInstance3D@317" type="MeshInstance3D" parent="Rung14" unique_id=281431874]
+mesh = SubResource("CylinderMesh_1if3w")
+surface_material_override/0 = SubResource("StandardMaterial3D_aimtc")
+
+[node name="Rung15" type="StaticBody3D" parent="." unique_id=724959377 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 7.500002, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@318" type="CollisionShape3D" parent="Rung15" unique_id=1491951974]
+shape = SubResource("CylinderShape3D_rpi44")
+
+[node name="@MeshInstance3D@319" type="MeshInstance3D" parent="Rung15" unique_id=2052438703]
+mesh = SubResource("CylinderMesh_lbt0k")
+surface_material_override/0 = SubResource("StandardMaterial3D_1jvko")
+
+[node name="Rung16" type="StaticBody3D" parent="." unique_id=1119140144 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 7.800002, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@320" type="CollisionShape3D" parent="Rung16" unique_id=563175816]
+shape = SubResource("CylinderShape3D_bh47j")
+
+[node name="@MeshInstance3D@321" type="MeshInstance3D" parent="Rung16" unique_id=1872424675]
+mesh = SubResource("CylinderMesh_cwfhf")
+surface_material_override/0 = SubResource("StandardMaterial3D_7r4re")
+
+[node name="Rung17" type="StaticBody3D" parent="." unique_id=155391683 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 8.100002, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@322" type="CollisionShape3D" parent="Rung17" unique_id=482341444]
+shape = SubResource("CylinderShape3D_kokst")
+
+[node name="@MeshInstance3D@323" type="MeshInstance3D" parent="Rung17" unique_id=950154488]
+mesh = SubResource("CylinderMesh_cusx3")
+surface_material_override/0 = SubResource("StandardMaterial3D_jkxvm")
+
+[node name="Rung18" type="StaticBody3D" parent="." unique_id=5412265 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 8.4000025, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@324" type="CollisionShape3D" parent="Rung18" unique_id=1714490380]
+shape = SubResource("CylinderShape3D_y0qv5")
+
+[node name="@MeshInstance3D@325" type="MeshInstance3D" parent="Rung18" unique_id=934178009]
+mesh = SubResource("CylinderMesh_kfqmb")
+surface_material_override/0 = SubResource("StandardMaterial3D_frajp")
+
+[node name="Rung19" type="StaticBody3D" parent="." unique_id=402885836 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, -2.7, 8.700003, -12.85)
+collision_mask = 29
+
+[node name="@CollisionShape3D@326" type="CollisionShape3D" parent="Rung19" unique_id=843189513]
+shape = SubResource("CylinderShape3D_w8e8q")
+
+[node name="@MeshInstance3D@327" type="MeshInstance3D" parent="Rung19" unique_id=457179348]
+mesh = SubResource("CylinderMesh_ddxnn")
+surface_material_override/0 = SubResource("StandardMaterial3D_1jdbt")
+
+[node name="FlagPole" type="StaticBody3D" parent="." unique_id=26845619 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.3, 9.2, -13.7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@328" type="CollisionShape3D" parent="FlagPole" unique_id=2125352271]
+shape = SubResource("CylinderShape3D_4ra8l")
+
+[node name="@MeshInstance3D@329" type="MeshInstance3D" parent="FlagPole" unique_id=1629206098]
+mesh = SubResource("CylinderMesh_ttkoj")
+surface_material_override/0 = SubResource("StandardMaterial3D_un8bp")
+
+[node name="Flag" type="StaticBody3D" parent="." unique_id=807309298]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.3, 10.15, -13.32)
+collision_mask = 29
+
+[node name="@CollisionShape3D@330" type="CollisionShape3D" parent="Flag" unique_id=2033207077]
+shape = SubResource("BoxShape3D_4rdo5")
+
+[node name="@MeshInstance3D@331" type="MeshInstance3D" parent="Flag" unique_id=1854416456]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_48c5m")
+surface_material_override/0 = SubResource("StandardMaterial3D_db6w3")
+
+[node name="Sign" type="Label3D" parent="." unique_id=2126660425]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.3, 10.8, -13.7)
+pixel_size = 0.003
+billboard = 2
+text = "8 m"
+font_size = 96
+
+[node name="Jug" type="StaticBody3D" parent="." unique_id=49298420 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@332" type="CollisionShape3D" parent="Jug" unique_id=248435117]
+shape = SubResource("BoxShape3D_pavee")
+
+[node name="@MeshInstance3D@333" type="MeshInstance3D" parent="Jug" unique_id=1373654060]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ri73e")
+surface_material_override/0 = SubResource("StandardMaterial3D_hrpi4")
+
+[node name="Jug2" type="StaticBody3D" parent="." unique_id=1553172363 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 9.45, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@334" type="CollisionShape3D" parent="Jug2" unique_id=736713104]
+shape = SubResource("BoxShape3D_7gc4j")
+
+[node name="@MeshInstance3D@335" type="MeshInstance3D" parent="Jug2" unique_id=1679532679]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ur1xe")
+surface_material_override/0 = SubResource("StandardMaterial3D_wk5ts")
+
+[node name="Jug3" type="StaticBody3D" parent="." unique_id=351898634 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 9.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@336" type="CollisionShape3D" parent="Jug3" unique_id=1541051777]
+shape = SubResource("BoxShape3D_1u8m5")
+
+[node name="@MeshInstance3D@337" type="MeshInstance3D" parent="Jug3" unique_id=1952589736]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_yexbb")
+surface_material_override/0 = SubResource("StandardMaterial3D_uvrpx")
+
+[node name="Jug4" type="StaticBody3D" parent="." unique_id=1421473191 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 10.349999, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@338" type="CollisionShape3D" parent="Jug4" unique_id=1646369367]
+shape = SubResource("BoxShape3D_j17wu")
+
+[node name="@MeshInstance3D@339" type="MeshInstance3D" parent="Jug4" unique_id=1826369741]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_bpw1o")
+surface_material_override/0 = SubResource("StandardMaterial3D_cxxfx")
+
+[node name="Jug5" type="StaticBody3D" parent="." unique_id=1300175972 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 10.799999, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@340" type="CollisionShape3D" parent="Jug5" unique_id=1079577650]
+shape = SubResource("BoxShape3D_o11g4")
+
+[node name="@MeshInstance3D@341" type="MeshInstance3D" parent="Jug5" unique_id=316721073]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_tnuip")
+surface_material_override/0 = SubResource("StandardMaterial3D_t1be7")
+
+[node name="Jug6" type="StaticBody3D" parent="." unique_id=1833424788 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 11.249999, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@342" type="CollisionShape3D" parent="Jug6" unique_id=2071275571]
+shape = SubResource("BoxShape3D_ouko4")
+
+[node name="@MeshInstance3D@343" type="MeshInstance3D" parent="Jug6" unique_id=2143998496]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_45arp")
+surface_material_override/0 = SubResource("StandardMaterial3D_slxo5")
+
+[node name="Jug7" type="StaticBody3D" parent="." unique_id=1110455014 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 11.699999, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@344" type="CollisionShape3D" parent="Jug7" unique_id=921920554]
+shape = SubResource("BoxShape3D_3dlty")
+
+[node name="@MeshInstance3D@345" type="MeshInstance3D" parent="Jug7" unique_id=2001747386]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_0celr")
+surface_material_override/0 = SubResource("StandardMaterial3D_cwge6")
+
+[node name="Jug8" type="StaticBody3D" parent="." unique_id=1387543968 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 12.149999, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@346" type="CollisionShape3D" parent="Jug8" unique_id=282018127]
+shape = SubResource("BoxShape3D_qihns")
+
+[node name="@MeshInstance3D@347" type="MeshInstance3D" parent="Jug8" unique_id=1819000079]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_0o3cn")
+surface_material_override/0 = SubResource("StandardMaterial3D_s7n22")
+
+[node name="Jug9" type="StaticBody3D" parent="." unique_id=752658814 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.25, 12.599998, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@348" type="CollisionShape3D" parent="Jug9" unique_id=530371016]
+shape = SubResource("BoxShape3D_56kv5")
+
+[node name="@MeshInstance3D@349" type="MeshInstance3D" parent="Jug9" unique_id=471176215]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ikhtq")
+surface_material_override/0 = SubResource("StandardMaterial3D_ltha6")
+
+[node name="Jug10" type="StaticBody3D" parent="." unique_id=313486071 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 13.049998, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@350" type="CollisionShape3D" parent="Jug10" unique_id=1915389088]
+shape = SubResource("BoxShape3D_ltv6h")
+
+[node name="@MeshInstance3D@351" type="MeshInstance3D" parent="Jug10" unique_id=1174763966]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_18xvr")
+surface_material_override/0 = SubResource("StandardMaterial3D_s61py")
+
+[node name="TraverseLedge" type="StaticBody3D" parent="." unique_id=1582374313 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 13.44, -14.3)
+collision_mask = 29
+
+[node name="@CollisionShape3D@352" type="CollisionShape3D" parent="TraverseLedge" unique_id=792760997]
+shape = SubResource("BoxShape3D_evtfc")
+
+[node name="@MeshInstance3D@353" type="MeshInstance3D" parent="TraverseLedge" unique_id=1690513687]
+mesh = SubResource("BoxMesh_if64h")
+surface_material_override/0 = SubResource("StandardMaterial3D_6y2hv")
+
+[node name="Jug11" type="StaticBody3D" parent="." unique_id=2065399982 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@354" type="CollisionShape3D" parent="Jug11" unique_id=796331554]
+shape = SubResource("BoxShape3D_0l0gp")
+
+[node name="@MeshInstance3D@355" type="MeshInstance3D" parent="Jug11" unique_id=1574364500]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_7gbnl")
+surface_material_override/0 = SubResource("StandardMaterial3D_4rgqe")
+
+[node name="Jug12" type="StaticBody3D" parent="." unique_id=426975223 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8000001, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@356" type="CollisionShape3D" parent="Jug12" unique_id=23199950]
+shape = SubResource("BoxShape3D_s8j8s")
+
+[node name="@MeshInstance3D@357" type="MeshInstance3D" parent="Jug12" unique_id=112421367]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ar6rv")
+surface_material_override/0 = SubResource("StandardMaterial3D_h60k6")
+
+[node name="Jug13" type="StaticBody3D" parent="." unique_id=5314408 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@358" type="CollisionShape3D" parent="Jug13" unique_id=1123032274]
+shape = SubResource("BoxShape3D_y1jqa")
+
+[node name="@MeshInstance3D@359" type="MeshInstance3D" parent="Jug13" unique_id=302350290]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_78set")
+surface_material_override/0 = SubResource("StandardMaterial3D_qqux8")
+
+[node name="Jug14" type="StaticBody3D" parent="." unique_id=1267560295 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@360" type="CollisionShape3D" parent="Jug14" unique_id=460016174]
+shape = SubResource("BoxShape3D_mdeb7")
+
+[node name="@MeshInstance3D@361" type="MeshInstance3D" parent="Jug14" unique_id=283441662]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_52pch")
+surface_material_override/0 = SubResource("StandardMaterial3D_ww4pb")
+
+[node name="Jug15" type="StaticBody3D" parent="." unique_id=1408159950 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@362" type="CollisionShape3D" parent="Jug15" unique_id=2036050093]
+shape = SubResource("BoxShape3D_klewb")
+
+[node name="@MeshInstance3D@363" type="MeshInstance3D" parent="Jug15" unique_id=1030546464]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_yqjnx")
+surface_material_override/0 = SubResource("StandardMaterial3D_3ad1a")
+
+[node name="Jug16" type="StaticBody3D" parent="." unique_id=777879512 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@364" type="CollisionShape3D" parent="Jug16" unique_id=2136903262]
+shape = SubResource("BoxShape3D_dgqrv")
+
+[node name="@MeshInstance3D@365" type="MeshInstance3D" parent="Jug16" unique_id=392610660]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_24mk4")
+surface_material_override/0 = SubResource("StandardMaterial3D_4o7go")
+
+[node name="Jug17" type="StaticBody3D" parent="." unique_id=1312221644 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@366" type="CollisionShape3D" parent="Jug17" unique_id=429251896]
+shape = SubResource("BoxShape3D_4xx6y")
+
+[node name="@MeshInstance3D@367" type="MeshInstance3D" parent="Jug17" unique_id=999359113]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_n0mee")
+surface_material_override/0 = SubResource("StandardMaterial3D_ecsmt")
+
+[node name="Jug18" type="StaticBody3D" parent="." unique_id=1643978415 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8000001, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@368" type="CollisionShape3D" parent="Jug18" unique_id=1691215013]
+shape = SubResource("BoxShape3D_7h026")
+
+[node name="@MeshInstance3D@369" type="MeshInstance3D" parent="Jug18" unique_id=341039530]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_8ofk5")
+surface_material_override/0 = SubResource("StandardMaterial3D_l0lhm")
+
+[node name="Jug19" type="StaticBody3D" parent="." unique_id=312653350 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@370" type="CollisionShape3D" parent="Jug19" unique_id=753080439]
+shape = SubResource("BoxShape3D_bwmb8")
+
+[node name="@MeshInstance3D@371" type="MeshInstance3D" parent="Jug19" unique_id=1353224868]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_bh5f1")
+surface_material_override/0 = SubResource("StandardMaterial3D_u3ojd")
+
+[node name="Jug20" type="StaticBody3D" parent="." unique_id=1689642479 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 14.9, -14.44)
+collision_mask = 29
+
+[node name="@CollisionShape3D@372" type="CollisionShape3D" parent="Jug20" unique_id=704337053]
+shape = SubResource("BoxShape3D_grkoj")
+
+[node name="@MeshInstance3D@373" type="MeshInstance3D" parent="Jug20" unique_id=605303790]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_awgsr")
+surface_material_override/0 = SubResource("StandardMaterial3D_2klpk")
+
+[node name="Overhang" type="StaticBody3D" parent="." unique_id=1967287828 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 15.7, -13.75)
+collision_mask = 29
+
+[node name="@CollisionShape3D@374" type="CollisionShape3D" parent="Overhang" unique_id=1452486112]
+shape = SubResource("BoxShape3D_l7phy")
+
+[node name="@MeshInstance3D@375" type="MeshInstance3D" parent="Overhang" unique_id=1655737597]
+mesh = SubResource("BoxMesh_uyyuj")
+surface_material_override/0 = SubResource("StandardMaterial3D_x8aek")
+
+[node name="RoofBar" type="StaticBody3D" parent="." unique_id=1650430787 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 3, 15.2, -14.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@376" type="CollisionShape3D" parent="RoofBar" unique_id=1817651914]
+shape = SubResource("CylinderShape3D_yitds")
+
+[node name="@MeshInstance3D@377" type="MeshInstance3D" parent="RoofBar" unique_id=1427637910]
+mesh = SubResource("CylinderMesh_dk1wv")
+surface_material_override/0 = SubResource("StandardMaterial3D_ppaw7")
+
+[node name="RoofHanger" type="StaticBody3D" parent="." unique_id=135664304 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 15.3125, -14.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@378" type="CollisionShape3D" parent="RoofHanger" unique_id=492817310]
+shape = SubResource("CylinderShape3D_lkxds")
+
+[node name="@MeshInstance3D@379" type="MeshInstance3D" parent="RoofHanger" unique_id=484128320]
+mesh = SubResource("CylinderMesh_bxxsu")
+surface_material_override/0 = SubResource("StandardMaterial3D_kuk8x")
+
+[node name="RoofHanger2" type="StaticBody3D" parent="." unique_id=1176171070 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 15.3125, -14.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@380" type="CollisionShape3D" parent="RoofHanger2" unique_id=1918797950]
+shape = SubResource("CylinderShape3D_x2v57")
+
+[node name="@MeshInstance3D@381" type="MeshInstance3D" parent="RoofHanger2" unique_id=499151533]
+mesh = SubResource("CylinderMesh_j4r6f")
+surface_material_override/0 = SubResource("StandardMaterial3D_7moyc")
+
+[node name="RoofBar2" type="StaticBody3D" parent="." unique_id=1231849694 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 3, 15.2, -13.7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@382" type="CollisionShape3D" parent="RoofBar2" unique_id=1631557012]
+shape = SubResource("CylinderShape3D_y2qxs")
+
+[node name="@MeshInstance3D@383" type="MeshInstance3D" parent="RoofBar2" unique_id=691024600]
+mesh = SubResource("CylinderMesh_4df0i")
+surface_material_override/0 = SubResource("StandardMaterial3D_qowlk")
+
+[node name="RoofHanger3" type="StaticBody3D" parent="." unique_id=817352191 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 15.3125, -13.7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@384" type="CollisionShape3D" parent="RoofHanger3" unique_id=1550144507]
+shape = SubResource("CylinderShape3D_5lnmf")
+
+[node name="@MeshInstance3D@385" type="MeshInstance3D" parent="RoofHanger3" unique_id=253818330]
+mesh = SubResource("CylinderMesh_co83d")
+surface_material_override/0 = SubResource("StandardMaterial3D_v7bvj")
+
+[node name="RoofHanger4" type="StaticBody3D" parent="." unique_id=1150621910 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 15.3125, -13.7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@386" type="CollisionShape3D" parent="RoofHanger4" unique_id=1714234674]
+shape = SubResource("CylinderShape3D_v6d1s")
+
+[node name="@MeshInstance3D@387" type="MeshInstance3D" parent="RoofHanger4" unique_id=332451944]
+mesh = SubResource("CylinderMesh_jcwje")
+surface_material_override/0 = SubResource("StandardMaterial3D_n4kl1")
+
+[node name="RoofBar3" type="StaticBody3D" parent="." unique_id=1630699731 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 3, 15.2, -13.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@388" type="CollisionShape3D" parent="RoofBar3" unique_id=1487227658]
+shape = SubResource("CylinderShape3D_jwmqq")
+
+[node name="@MeshInstance3D@389" type="MeshInstance3D" parent="RoofBar3" unique_id=296231217]
+mesh = SubResource("CylinderMesh_can5r")
+surface_material_override/0 = SubResource("StandardMaterial3D_rvmul")
+
+[node name="RoofHanger5" type="StaticBody3D" parent="." unique_id=1915009629 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 15.3125, -13.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@390" type="CollisionShape3D" parent="RoofHanger5" unique_id=527231793]
+shape = SubResource("CylinderShape3D_wmmro")
+
+[node name="@MeshInstance3D@391" type="MeshInstance3D" parent="RoofHanger5" unique_id=689156782]
+mesh = SubResource("CylinderMesh_epe4p")
+surface_material_override/0 = SubResource("StandardMaterial3D_4vgr2")
+
+[node name="RoofHanger6" type="StaticBody3D" parent="." unique_id=1273886794 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.2, 15.3125, -13.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@392" type="CollisionShape3D" parent="RoofHanger6" unique_id=140335593]
+shape = SubResource("CylinderShape3D_rxpqe")
+
+[node name="@MeshInstance3D@393" type="MeshInstance3D" parent="RoofHanger6" unique_id=177714256]
+mesh = SubResource("CylinderMesh_pb5ff")
+surface_material_override/0 = SubResource("StandardMaterial3D_nmg08")
+
+[node name="Jug21" type="StaticBody3D" parent="." unique_id=48487907 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 15.65, -12.94)
+collision_mask = 29
+
+[node name="@CollisionShape3D@394" type="CollisionShape3D" parent="Jug21" unique_id=569607103]
+shape = SubResource("BoxShape3D_lvrxu")
+
+[node name="@MeshInstance3D@395" type="MeshInstance3D" parent="Jug21" unique_id=1546919]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_d4v0o")
+surface_material_override/0 = SubResource("StandardMaterial3D_i45tp")
+
+[node name="LipBar" type="StaticBody3D" parent="." unique_id=2059940914 groups=["crag_route"]]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 3, 16.03, -13.05)
+collision_mask = 29
+
+[node name="@CollisionShape3D@396" type="CollisionShape3D" parent="LipBar" unique_id=77440818]
+shape = SubResource("CylinderShape3D_mnhej")
+
+[node name="@MeshInstance3D@397" type="MeshInstance3D" parent="LipBar" unique_id=621258043]
+mesh = SubResource("CylinderMesh_tfijq")
+surface_material_override/0 = SubResource("StandardMaterial3D_xdco5")
+
+[node name="FlagPole2" type="StaticBody3D" parent="." unique_id=94209726 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.3, 17.2, -15.2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@398" type="CollisionShape3D" parent="FlagPole2" unique_id=457462667]
+shape = SubResource("CylinderShape3D_mtk38")
+
+[node name="@MeshInstance3D@399" type="MeshInstance3D" parent="FlagPole2" unique_id=403058557]
+mesh = SubResource("CylinderMesh_aidgg")
+surface_material_override/0 = SubResource("StandardMaterial3D_he3wn")
+
+[node name="Flag2" type="StaticBody3D" parent="." unique_id=192707682]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.3, 18.15, -14.82)
+collision_mask = 29
+
+[node name="@CollisionShape3D@400" type="CollisionShape3D" parent="Flag2" unique_id=824060385]
+shape = SubResource("BoxShape3D_qb6fu")
+
+[node name="@MeshInstance3D@401" type="MeshInstance3D" parent="Flag2" unique_id=329664953]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_cs7ax")
+surface_material_override/0 = SubResource("StandardMaterial3D_ukfby")
+
+[node name="Sign2" type="Label3D" parent="." unique_id=747545517]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.3, 18.8, -15.2)
+pixel_size = 0.003
+billboard = 2
+text = "16 m"
+font_size = 96
+
+[node name="Jug22" type="StaticBody3D" parent="." unique_id=2141116927 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 16.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@402" type="CollisionShape3D" parent="Jug22" unique_id=1145894268]
+shape = SubResource("BoxShape3D_mmli7")
+
+[node name="@MeshInstance3D@403" type="MeshInstance3D" parent="Jug22" unique_id=854380395]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_2y0hp")
+surface_material_override/0 = SubResource("StandardMaterial3D_3d1l5")
+
+[node name="Jug23" type="StaticBody3D" parent="." unique_id=644946404 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 16.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@404" type="CollisionShape3D" parent="Jug23" unique_id=582744872]
+shape = SubResource("BoxShape3D_b8pa8")
+
+[node name="@MeshInstance3D@405" type="MeshInstance3D" parent="Jug23" unique_id=335149601]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_jnli2")
+surface_material_override/0 = SubResource("StandardMaterial3D_k4jqh")
+
+[node name="Jug24" type="StaticBody3D" parent="." unique_id=518019640 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 17.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@406" type="CollisionShape3D" parent="Jug24" unique_id=1278673063]
+shape = SubResource("BoxShape3D_0nr71")
+
+[node name="@MeshInstance3D@407" type="MeshInstance3D" parent="Jug24" unique_id=191031339]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_g274r")
+surface_material_override/0 = SubResource("StandardMaterial3D_o8ywk")
+
+[node name="Jug25" type="StaticBody3D" parent="." unique_id=1232988542 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 17.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@408" type="CollisionShape3D" parent="Jug25" unique_id=84213873]
+shape = SubResource("BoxShape3D_hvvw1")
+
+[node name="@MeshInstance3D@409" type="MeshInstance3D" parent="Jug25" unique_id=476556163]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_mr4xe")
+surface_material_override/0 = SubResource("StandardMaterial3D_w38s8")
+
+[node name="Jug26" type="StaticBody3D" parent="." unique_id=1865627302 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 17.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@410" type="CollisionShape3D" parent="Jug26" unique_id=1214342884]
+shape = SubResource("BoxShape3D_e43uw")
+
+[node name="@MeshInstance3D@411" type="MeshInstance3D" parent="Jug26" unique_id=919255440]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_auv0w")
+surface_material_override/0 = SubResource("StandardMaterial3D_2488n")
+
+[node name="Jug27" type="StaticBody3D" parent="." unique_id=1097177823 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 17.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@412" type="CollisionShape3D" parent="Jug27" unique_id=538272960]
+shape = SubResource("BoxShape3D_wqnn4")
+
+[node name="@MeshInstance3D@413" type="MeshInstance3D" parent="Jug27" unique_id=1544351155]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_16meo")
+surface_material_override/0 = SubResource("StandardMaterial3D_d771p")
+
+[node name="Jug28" type="StaticBody3D" parent="." unique_id=1335837585 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 18.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@414" type="CollisionShape3D" parent="Jug28" unique_id=1510624293]
+shape = SubResource("BoxShape3D_h6ptw")
+
+[node name="@MeshInstance3D@415" type="MeshInstance3D" parent="Jug28" unique_id=1672525413]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_4w661")
+surface_material_override/0 = SubResource("StandardMaterial3D_syics")
+
+[node name="Jug29" type="StaticBody3D" parent="." unique_id=397220043 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 18.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@416" type="CollisionShape3D" parent="Jug29" unique_id=1205633556]
+shape = SubResource("BoxShape3D_s035j")
+
+[node name="@MeshInstance3D@417" type="MeshInstance3D" parent="Jug29" unique_id=1428945771]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_5q3vp")
+surface_material_override/0 = SubResource("StandardMaterial3D_bstld")
+
+[node name="Jug30" type="StaticBody3D" parent="." unique_id=1384719571 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 18.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@418" type="CollisionShape3D" parent="Jug30" unique_id=317024738]
+shape = SubResource("BoxShape3D_1wtn2")
+
+[node name="@MeshInstance3D@419" type="MeshInstance3D" parent="Jug30" unique_id=2004088661]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_w0y04")
+surface_material_override/0 = SubResource("StandardMaterial3D_rkbjq")
+
+[node name="Jug31" type="StaticBody3D" parent="." unique_id=577254511 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 18.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@420" type="CollisionShape3D" parent="Jug31" unique_id=1238860828]
+shape = SubResource("BoxShape3D_idpor")
+
+[node name="@MeshInstance3D@421" type="MeshInstance3D" parent="Jug31" unique_id=19245332]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_a1qte")
+surface_material_override/0 = SubResource("StandardMaterial3D_u5v7o")
+
+[node name="Jug32" type="StaticBody3D" parent="." unique_id=1731787528 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 19.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@422" type="CollisionShape3D" parent="Jug32" unique_id=952789223]
+shape = SubResource("BoxShape3D_hoqil")
+
+[node name="@MeshInstance3D@423" type="MeshInstance3D" parent="Jug32" unique_id=1439999266]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_qwv7c")
+surface_material_override/0 = SubResource("StandardMaterial3D_1at23")
+
+[node name="Jug33" type="StaticBody3D" parent="." unique_id=2014014866 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 19.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@424" type="CollisionShape3D" parent="Jug33" unique_id=1502625802]
+shape = SubResource("BoxShape3D_t1fjj")
+
+[node name="@MeshInstance3D@425" type="MeshInstance3D" parent="Jug33" unique_id=1423164028]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_whitw")
+surface_material_override/0 = SubResource("StandardMaterial3D_q2f63")
+
+[node name="Jug34" type="StaticBody3D" parent="." unique_id=1031208551 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 19.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@426" type="CollisionShape3D" parent="Jug34" unique_id=330967495]
+shape = SubResource("BoxShape3D_g5u3u")
+
+[node name="@MeshInstance3D@427" type="MeshInstance3D" parent="Jug34" unique_id=636605156]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ie35i")
+surface_material_override/0 = SubResource("StandardMaterial3D_csv88")
+
+[node name="Jug35" type="StaticBody3D" parent="." unique_id=317603975 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 19.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@428" type="CollisionShape3D" parent="Jug35" unique_id=1000899766]
+shape = SubResource("BoxShape3D_islyj")
+
+[node name="@MeshInstance3D@429" type="MeshInstance3D" parent="Jug35" unique_id=431187547]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_dcb7d")
+surface_material_override/0 = SubResource("StandardMaterial3D_0iy7a")
+
+[node name="Jug36" type="StaticBody3D" parent="." unique_id=1199926359 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 20.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@430" type="CollisionShape3D" parent="Jug36" unique_id=15166159]
+shape = SubResource("BoxShape3D_dermq")
+
+[node name="@MeshInstance3D@431" type="MeshInstance3D" parent="Jug36" unique_id=947777893]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_l0hwr")
+surface_material_override/0 = SubResource("StandardMaterial3D_pum65")
+
+[node name="Jug37" type="StaticBody3D" parent="." unique_id=253525000 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 20.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@432" type="CollisionShape3D" parent="Jug37" unique_id=1376352719]
+shape = SubResource("BoxShape3D_2qnh6")
+
+[node name="@MeshInstance3D@433" type="MeshInstance3D" parent="Jug37" unique_id=975326289]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_bjrgp")
+surface_material_override/0 = SubResource("StandardMaterial3D_7h0ew")
+
+[node name="Jug38" type="StaticBody3D" parent="." unique_id=1223765403 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 20.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@434" type="CollisionShape3D" parent="Jug38" unique_id=1130277911]
+shape = SubResource("BoxShape3D_83tcd")
+
+[node name="@MeshInstance3D@435" type="MeshInstance3D" parent="Jug38" unique_id=1055397612]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_e1e2f")
+surface_material_override/0 = SubResource("StandardMaterial3D_bkcg2")
+
+[node name="Jug39" type="StaticBody3D" parent="." unique_id=1242979462 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 20.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@436" type="CollisionShape3D" parent="Jug39" unique_id=1881245107]
+shape = SubResource("BoxShape3D_xm7q3")
+
+[node name="@MeshInstance3D@437" type="MeshInstance3D" parent="Jug39" unique_id=1871895760]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_whfon")
+surface_material_override/0 = SubResource("StandardMaterial3D_sbdvc")
+
+[node name="Jug40" type="StaticBody3D" parent="." unique_id=441885985 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 21.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@438" type="CollisionShape3D" parent="Jug40" unique_id=1763499456]
+shape = SubResource("BoxShape3D_aqayh")
+
+[node name="@MeshInstance3D@439" type="MeshInstance3D" parent="Jug40" unique_id=1609063138]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ga2mi")
+surface_material_override/0 = SubResource("StandardMaterial3D_itf5h")
+
+[node name="Jug41" type="StaticBody3D" parent="." unique_id=1270570286 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 21.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@440" type="CollisionShape3D" parent="Jug41" unique_id=739416455]
+shape = SubResource("BoxShape3D_w1mrc")
+
+[node name="@MeshInstance3D@441" type="MeshInstance3D" parent="Jug41" unique_id=1658710138]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_clgjp")
+surface_material_override/0 = SubResource("StandardMaterial3D_ine53")
+
+[node name="Jug42" type="StaticBody3D" parent="." unique_id=128224866 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 21.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@442" type="CollisionShape3D" parent="Jug42" unique_id=1602630710]
+shape = SubResource("BoxShape3D_hj3gq")
+
+[node name="@MeshInstance3D@443" type="MeshInstance3D" parent="Jug42" unique_id=679862203]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_asqd4")
+surface_material_override/0 = SubResource("StandardMaterial3D_nyxvq")
+
+[node name="Jug43" type="StaticBody3D" parent="." unique_id=1491039423 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 21.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@444" type="CollisionShape3D" parent="Jug43" unique_id=1729460201]
+shape = SubResource("BoxShape3D_fp6bx")
+
+[node name="@MeshInstance3D@445" type="MeshInstance3D" parent="Jug43" unique_id=2036941156]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_6diat")
+surface_material_override/0 = SubResource("StandardMaterial3D_plo15")
+
+[node name="Jug44" type="StaticBody3D" parent="." unique_id=1886523639 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 22.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@446" type="CollisionShape3D" parent="Jug44" unique_id=1867812673]
+shape = SubResource("BoxShape3D_k4qn0")
+
+[node name="@MeshInstance3D@447" type="MeshInstance3D" parent="Jug44" unique_id=539517899]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_jkm0q")
+surface_material_override/0 = SubResource("StandardMaterial3D_roxhh")
+
+[node name="Jug45" type="StaticBody3D" parent="." unique_id=104329036 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 22.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@448" type="CollisionShape3D" parent="Jug45" unique_id=927383147]
+shape = SubResource("BoxShape3D_odd27")
+
+[node name="@MeshInstance3D@449" type="MeshInstance3D" parent="Jug45" unique_id=1967600621]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_la7oa")
+surface_material_override/0 = SubResource("StandardMaterial3D_se51u")
+
+[node name="Jug46" type="StaticBody3D" parent="." unique_id=94425954 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 22.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@450" type="CollisionShape3D" parent="Jug46" unique_id=66293700]
+shape = SubResource("BoxShape3D_6wc80")
+
+[node name="@MeshInstance3D@451" type="MeshInstance3D" parent="Jug46" unique_id=848509859]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_fbdvl")
+surface_material_override/0 = SubResource("StandardMaterial3D_atyg4")
+
+[node name="Jug47" type="StaticBody3D" parent="." unique_id=327811174 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 22.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@452" type="CollisionShape3D" parent="Jug47" unique_id=1145964283]
+shape = SubResource("BoxShape3D_eipaw")
+
+[node name="@MeshInstance3D@453" type="MeshInstance3D" parent="Jug47" unique_id=1093524275]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_6sy27")
+surface_material_override/0 = SubResource("StandardMaterial3D_024ly")
+
+[node name="Jug48" type="StaticBody3D" parent="." unique_id=1441588635 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 23.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@454" type="CollisionShape3D" parent="Jug48" unique_id=768267092]
+shape = SubResource("BoxShape3D_3oy37")
+
+[node name="@MeshInstance3D@455" type="MeshInstance3D" parent="Jug48" unique_id=329639396]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_cnn6b")
+surface_material_override/0 = SubResource("StandardMaterial3D_13dpv")
+
+[node name="Jug49" type="StaticBody3D" parent="." unique_id=796772792 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 23.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@456" type="CollisionShape3D" parent="Jug49" unique_id=1031364039]
+shape = SubResource("BoxShape3D_wmt5p")
+
+[node name="@MeshInstance3D@457" type="MeshInstance3D" parent="Jug49" unique_id=383751654]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ne5y3")
+surface_material_override/0 = SubResource("StandardMaterial3D_7i8c5")
+
+[node name="Jug50" type="StaticBody3D" parent="." unique_id=1671907913 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 23.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@458" type="CollisionShape3D" parent="Jug50" unique_id=1412305069]
+shape = SubResource("BoxShape3D_uyof5")
+
+[node name="@MeshInstance3D@459" type="MeshInstance3D" parent="Jug50" unique_id=39589416]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ybn7o")
+surface_material_override/0 = SubResource("StandardMaterial3D_jy4nf")
+
+[node name="Jug51" type="StaticBody3D" parent="." unique_id=1695936173 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 23.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@460" type="CollisionShape3D" parent="Jug51" unique_id=1025460030]
+shape = SubResource("BoxShape3D_2tatq")
+
+[node name="@MeshInstance3D@461" type="MeshInstance3D" parent="Jug51" unique_id=1952434969]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_tivb0")
+surface_material_override/0 = SubResource("StandardMaterial3D_fvrgo")
+
+[node name="Jug52" type="StaticBody3D" parent="." unique_id=923539569 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 24.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@462" type="CollisionShape3D" parent="Jug52" unique_id=180638940]
+shape = SubResource("BoxShape3D_rqc2s")
+
+[node name="@MeshInstance3D@463" type="MeshInstance3D" parent="Jug52" unique_id=1307695640]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_0fl00")
+surface_material_override/0 = SubResource("StandardMaterial3D_6o4bt")
+
+[node name="Jug53" type="StaticBody3D" parent="." unique_id=820127328 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 24.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@464" type="CollisionShape3D" parent="Jug53" unique_id=360749710]
+shape = SubResource("BoxShape3D_bsuq8")
+
+[node name="@MeshInstance3D@465" type="MeshInstance3D" parent="Jug53" unique_id=806991926]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_el71b")
+surface_material_override/0 = SubResource("StandardMaterial3D_dahde")
+
+[node name="Jug54" type="StaticBody3D" parent="." unique_id=1074536771 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 24.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@466" type="CollisionShape3D" parent="Jug54" unique_id=506635474]
+shape = SubResource("BoxShape3D_5wvht")
+
+[node name="@MeshInstance3D@467" type="MeshInstance3D" parent="Jug54" unique_id=190172783]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ud68b")
+surface_material_override/0 = SubResource("StandardMaterial3D_3vo2d")
+
+[node name="Jug55" type="StaticBody3D" parent="." unique_id=2104867439 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 24.95, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@468" type="CollisionShape3D" parent="Jug55" unique_id=1964846824]
+shape = SubResource("BoxShape3D_qhvrd")
+
+[node name="@MeshInstance3D@469" type="MeshInstance3D" parent="Jug55" unique_id=656528302]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_0gpv5")
+surface_material_override/0 = SubResource("StandardMaterial3D_cd373")
+
+[node name="Jug56" type="StaticBody3D" parent="." unique_id=1212288509 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 25.2, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@470" type="CollisionShape3D" parent="Jug56" unique_id=893603220]
+shape = SubResource("BoxShape3D_imp1f")
+
+[node name="@MeshInstance3D@471" type="MeshInstance3D" parent="Jug56" unique_id=2059646910]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_7mf3n")
+surface_material_override/0 = SubResource("StandardMaterial3D_5miq5")
+
+[node name="Jug57" type="StaticBody3D" parent="." unique_id=1876057974 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39, 25.45, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@472" type="CollisionShape3D" parent="Jug57" unique_id=1795492361]
+shape = SubResource("BoxShape3D_2qnwn")
+
+[node name="@MeshInstance3D@473" type="MeshInstance3D" parent="Jug57" unique_id=1832406686]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_ojqp6")
+surface_material_override/0 = SubResource("StandardMaterial3D_06m0l")
+
+[node name="Jug58" type="StaticBody3D" parent="." unique_id=1258372298 groups=["crag_route"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.39, 25.7, -16.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@474" type="CollisionShape3D" parent="Jug58" unique_id=342140099]
+shape = SubResource("BoxShape3D_3fe6q")
+
+[node name="@MeshInstance3D@475" type="MeshInstance3D" parent="Jug58" unique_id=281899515]
+cast_shadow = 0
+mesh = SubResource("BoxMesh_rcmyd")
+surface_material_override/0 = SubResource("StandardMaterial3D_r17t6")
+
+[node name="Sign3" type="Label3D" parent="." unique_id=2031678765]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 27.6, -18.5)
+pixel_size = 0.004
+billboard = 2
+text = "Summit 26 m"
+font_size = 96
+
+[node name="Trunk" type="StaticBody3D" parent="." unique_id=438321458]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1.8000001, -11.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@476" type="CollisionShape3D" parent="Trunk" unique_id=1549330152]
+shape = SubResource("CylinderShape3D_qwxso")
+
+[node name="@MeshInstance3D@477" type="MeshInstance3D" parent="Trunk" unique_id=1421742160]
+mesh = SubResource("CylinderMesh_ugobg")
+surface_material_override/0 = SubResource("StandardMaterial3D_140bl")
+
+[node name="Canopy" type="StaticBody3D" parent="." unique_id=1599018589 groups=["no_grab"]]
+transform = Transform3D(-0.9899925, 0, -0.14112, 0, 1, 0, 0.14112, 0, -0.9899925, -10, 4.5, -11.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@478" type="CollisionShape3D" parent="Canopy" unique_id=575889245]
+shape = SubResource("BoxShape3D_8ab1d")
+
+[node name="@MeshInstance3D@479" type="MeshInstance3D" parent="Canopy" unique_id=1173340651]
+mesh = SubResource("BoxMesh_2wr4d")
+surface_material_override/0 = SubResource("StandardMaterial3D_ncsok")
+
+[node name="Trunk2" type="StaticBody3D" parent="." unique_id=880090898]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 2.1000001, -12)
+collision_mask = 29
+
+[node name="@CollisionShape3D@480" type="CollisionShape3D" parent="Trunk2" unique_id=747170877]
+shape = SubResource("CylinderShape3D_f8dqw")
+
+[node name="@MeshInstance3D@481" type="MeshInstance3D" parent="Trunk2" unique_id=1387877886]
+mesh = SubResource("CylinderMesh_bo7gm")
+surface_material_override/0 = SubResource("StandardMaterial3D_3dqwx")
+
+[node name="Canopy2" type="StaticBody3D" parent="." unique_id=1059885660 groups=["no_grab"]]
+transform = Transform3D(-0.99996465, 0, -0.008407343, 0, 1, 0, 0.008407343, 0, -0.99996465, 10.5, 5.25, -12)
+collision_mask = 29
+
+[node name="@CollisionShape3D@482" type="CollisionShape3D" parent="Canopy2" unique_id=413692852]
+shape = SubResource("BoxShape3D_a56d3")
+
+[node name="@MeshInstance3D@483" type="MeshInstance3D" parent="Canopy2" unique_id=656246607]
+mesh = SubResource("BoxMesh_pnjao")
+surface_material_override/0 = SubResource("StandardMaterial3D_qjpjn")
+
+[node name="Trunk3" type="StaticBody3D" parent="." unique_id=81634232]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 1.6500001, -17)
+collision_mask = 29
+
+[node name="@CollisionShape3D@484" type="CollisionShape3D" parent="Trunk3" unique_id=401136320]
+shape = SubResource("CylinderShape3D_c37dw")
+
+[node name="@MeshInstance3D@485" type="MeshInstance3D" parent="Trunk3" unique_id=945446728]
+mesh = SubResource("CylinderMesh_kxpiu")
+surface_material_override/0 = SubResource("StandardMaterial3D_62j5g")
+
+[node name="Canopy3" type="StaticBody3D" parent="." unique_id=1043981065 groups=["no_grab"]]
+transform = Transform3D(-0.8967584, 0, 0.44252056, 0, 1, 0, -0.44252056, 0, -0.8967584, -12, 4.125, -17)
+collision_mask = 29
+
+[node name="@CollisionShape3D@486" type="CollisionShape3D" parent="Canopy3" unique_id=1925018285]
+shape = SubResource("BoxShape3D_st8ea")
+
+[node name="@MeshInstance3D@487" type="MeshInstance3D" parent="Canopy3" unique_id=802817891]
+mesh = SubResource("BoxMesh_3ponm")
+surface_material_override/0 = SubResource("StandardMaterial3D_vq46m")
+
+[node name="Trunk4" type="StaticBody3D" parent="." unique_id=646253097]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 1.95, -18)
+collision_mask = 29
+
+[node name="@CollisionShape3D@488" type="CollisionShape3D" parent="Trunk4" unique_id=1304252723]
+shape = SubResource("CylinderShape3D_fv3e7")
+
+[node name="@MeshInstance3D@489" type="MeshInstance3D" parent="Trunk4" unique_id=1958557818]
+mesh = SubResource("CylinderMesh_wa46t")
+surface_material_override/0 = SubResource("StandardMaterial3D_nyum8")
+
+[node name="Canopy4" type="StaticBody3D" parent="." unique_id=388698265 groups=["no_grab"]]
+transform = Transform3D(-0.8967584, 0, -0.44252056, 0, 1, 0, 0.44252056, 0, -0.8967584, 12, 4.875, -18)
+collision_mask = 29
+
+[node name="@CollisionShape3D@490" type="CollisionShape3D" parent="Canopy4" unique_id=1704079001]
+shape = SubResource("BoxShape3D_xev1y")
+
+[node name="@MeshInstance3D@491" type="MeshInstance3D" parent="Canopy4" unique_id=3253471]
+mesh = SubResource("BoxMesh_26gui")
+surface_material_override/0 = SubResource("StandardMaterial3D_2hyrf")
+
+[node name="PillarWest" type="StaticBody3D" parent="." unique_id=2099614124]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 4.5, -10.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@492" type="CollisionShape3D" parent="PillarWest" unique_id=1931638471]
+shape = SubResource("CylinderShape3D_hayo6")
+
+[node name="@MeshInstance3D@493" type="MeshInstance3D" parent="PillarWest" unique_id=1407300152]
+mesh = SubResource("CylinderMesh_f3vti")
+surface_material_override/0 = SubResource("StandardMaterial3D_45bj4")
+
+[node name="PillarEast" type="StaticBody3D" parent="." unique_id=1175086188]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.5, 6, -10)
+collision_mask = 29
+
+[node name="@CollisionShape3D@494" type="CollisionShape3D" parent="PillarEast" unique_id=919045198]
+shape = SubResource("CylinderShape3D_im5ar")
+
+[node name="@MeshInstance3D@495" type="MeshInstance3D" parent="PillarEast" unique_id=962740666]
+mesh = SubResource("CylinderMesh_o6nli")
+surface_material_override/0 = SubResource("StandardMaterial3D_h84kv")
+
+[node name="Sign4" type="Label3D" parent="." unique_id=440634046]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.6, 2.6, -7.6)
+pixel_size = 0.003
+billboard = 2
+text = "The Crag — 26 m"
+font_size = 96
+
+[node name="CragMarker" type="Node3D" parent="." unique_id=1762871811 instance=ExtResource("2_v0m8b")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -9.5)
+script = ExtResource("3_s3tp4")
+MarkerLabel = "Crag"
+
+[node name="SummitCrate0" type="RigidBody3D" parent="." unique_id=85171181 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 26.2, -17.2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_h2t7n")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@496" type="CollisionShape3D" parent="SummitCrate0" unique_id=1356056489]
+shape = SubResource("BoxShape3D_hk37o")
+
+[node name="@MeshInstance3D@497" type="MeshInstance3D" parent="SummitCrate0" unique_id=67417815]
+mesh = SubResource("BoxMesh_bjf5g")
+surface_material_override/0 = SubResource("StandardMaterial3D_wjv5s")
+
+[node name="SummitCrate1" type="RigidBody3D" parent="." unique_id=96902935 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 26.2, -17.2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_5pbfj")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@498" type="CollisionShape3D" parent="SummitCrate1" unique_id=318570046]
+shape = SubResource("BoxShape3D_cf25r")
+
+[node name="@MeshInstance3D@499" type="MeshInstance3D" parent="SummitCrate1" unique_id=1937410316]
+mesh = SubResource("BoxMesh_t7ctr")
+surface_material_override/0 = SubResource("StandardMaterial3D_lcsba")
+
+[node name="SummitCrate2" type="RigidBody3D" parent="." unique_id=1954960397 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 26.2, -17.2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_urj8c")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@500" type="CollisionShape3D" parent="SummitCrate2" unique_id=2014584822]
+shape = SubResource("BoxShape3D_8ywpv")
+
+[node name="@MeshInstance3D@501" type="MeshInstance3D" parent="SummitCrate2" unique_id=579567530]
+mesh = SubResource("BoxMesh_4p830")
+surface_material_override/0 = SubResource("StandardMaterial3D_8t4uu")
+
+[node name="SummitBarrel" type="RigidBody3D" parent="." unique_id=1300694748 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8, 26.425, -18.8)
+collision_mask = 29
+mass = 12.0
+physics_material_override = SubResource("PhysicsMaterial_84p2p")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@502" type="CollisionShape3D" parent="SummitBarrel" unique_id=1397423338]
+shape = SubResource("CylinderShape3D_w7l24")
+
+[node name="@MeshInstance3D@503" type="MeshInstance3D" parent="SummitBarrel" unique_id=1760476190]
+mesh = SubResource("CylinderMesh_vi2b5")
+surface_material_override/0 = SubResource("StandardMaterial3D_d4e40")
+
+[node name="SummitBall" type="RigidBody3D" parent="." unique_id=2129980803 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.6, 26.15, -18.4)
+collision_mask = 29
+mass = 1.5
+physics_material_override = SubResource("PhysicsMaterial_te4hh")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@504" type="CollisionShape3D" parent="SummitBall" unique_id=1447805651]
+shape = SubResource("SphereShape3D_4otvp")
+
+[node name="@MeshInstance3D@505" type="MeshInstance3D" parent="SummitBall" unique_id=342614525]
+mesh = SubResource("SphereMesh_yponk")
+surface_material_override/0 = SubResource("StandardMaterial3D_f5h4v")
+
+[node name="SummitPlank" type="RigidBody3D" parent="." unique_id=2137241573 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 26.02, -18.8)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_ficvs")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@506" type="CollisionShape3D" parent="SummitPlank" unique_id=618173472]
+shape = SubResource("BoxShape3D_30sv5")
+
+[node name="@MeshInstance3D@507" type="MeshInstance3D" parent="SummitPlank" unique_id=622627070]
+mesh = SubResource("BoxMesh_vev5g")
+surface_material_override/0 = SubResource("StandardMaterial3D_th4vx")
diff --git a/scenes/maps/playground.tscn b/scenes/maps/playground.tscn
new file mode 100644
index 0000000..41ef0d3
--- /dev/null
+++ b/scenes/maps/playground.tscn
@@ -0,0 +1,2264 @@
+[gd_scene format=3]
+
+[ext_resource type="Script" path="res://scripts/Playground.cs" id="1"]
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_4dhe6"]
+size = Vector3(1.2, 0.3, 1.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_5hicw"]
+size = Vector3(1.2, 0.3, 1.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xxtkw"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_rddl2"]
+size = Vector3(1.2, 0.6, 1.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_xw4wq"]
+size = Vector3(1.2, 0.6, 1.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_050xr"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_hwtpv"]
+size = Vector3(1.2, 0.9, 1.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7n6l4"]
+size = Vector3(1.2, 0.9, 1.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_snwvs"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_kms2k"]
+size = Vector3(1.2, 1.2, 1.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2r3eo"]
+size = Vector3(1.2, 1.2, 1.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_brwlm"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_yubad"]
+size = Vector3(1.2, 1.5, 1.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ri6b7"]
+size = Vector3(1.2, 1.5, 1.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_m6rps"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ov8qe"]
+size = Vector3(3, 1, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_x453x"]
+size = Vector3(3, 1, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jkr81"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_omqb8"]
+size = Vector3(1.2, 0.17, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ugi88"]
+size = Vector3(1.2, 0.17, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fk7ew"]
+albedo_color = Color(0.658, 0.658, 0.64000005, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_7iiy4"]
+size = Vector3(1.2, 0.34, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_g5lew"]
+size = Vector3(1.2, 0.34, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_iu1ix"]
+albedo_color = Color(0.658, 0.658, 0.64000005, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_dep6j"]
+size = Vector3(1.2, 0.51, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_r2bbi"]
+size = Vector3(1.2, 0.51, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xdwkp"]
+albedo_color = Color(0.658, 0.658, 0.64000005, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_tvwdx"]
+size = Vector3(1.2, 0.68, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_pxm47"]
+size = Vector3(1.2, 0.68, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mo4la"]
+albedo_color = Color(0.658, 0.658, 0.64000005, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_a72v8"]
+size = Vector3(1.2, 0.85, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2fuex"]
+size = Vector3(1.2, 0.85, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wku2t"]
+albedo_color = Color(0.658, 0.658, 0.64000005, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_jp1lm"]
+size = Vector3(1.2, 0.1, 3.236068)
+
+[sub_resource type="BoxMesh" id="BoxMesh_oen35"]
+size = Vector3(1.2, 0.1, 3.236068)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k3tyx"]
+albedo_color = Color(0.35, 0.6, 0.35, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_43gh8"]
+size = Vector3(1.2, 0.1, 1.5557239)
+
+[sub_resource type="BoxMesh" id="BoxMesh_po2hk"]
+size = Vector3(1.2, 0.1, 1.5557239)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tre4p"]
+albedo_color = Color(0.7, 0.25, 0.2, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_facsp"]
+size = Vector3(1.5, 2.4, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_wgbty"]
+size = Vector3(1.5, 2.4, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o7jyf"]
+albedo_color = Color(0.527, 0.527, 0.51000005, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_af7y8"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ttk7h"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ucg7x"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2di82"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2cxnl"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7y4m6"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ui0pa"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_8yeei"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t5xen"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2xwyj"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_jaan3"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ibb3u"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ulryc"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_mp4hn"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kv6g1"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_kompm"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_01ysc"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dpsmv"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_cmx2w"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_o4lay"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q0yk0"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_as2wx"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_e7gj8"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bcg5q"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_envay"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7cls0"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vwl8l"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2bpuj"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_qbpbn"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_18eo1"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_swxwg"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_v5dry"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5074v"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_u0ss8"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_me7bm"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3schc"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_xce76"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_kjj7b"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_phgyb"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_y32so"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_h3l2e"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5thfd"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_euosm"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ou71q"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r6whk"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_pb4df"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_1w5c8"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vmw2n"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_nymjq"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ixis2"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3cuc5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ed34t"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7x2sw"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ktxxr"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_onnij"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_1xeh3"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wsii5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_vp27g"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_jclyj"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ixgss"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_fydnx"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_htt14"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jf0e5"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_5bfuw"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_8s5yp"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kfd1y"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3ms4o"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_0xtc5"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xvaun"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_wq00a"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="BoxMesh" id="BoxMesh_babem"]
+size = Vector3(0.08, 0.06, 0.22)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5fo3m"]
+albedo_color = Color(0.9, 0.45, 0.15, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_8jvjl"]
+height = 2.25
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_i6wec"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.25
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3wn44"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_l4xjc"]
+height = 2.25
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_tepdl"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.25
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g05k5"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_421mk"]
+height = 1.4000001
+radius = 0.025
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_pm006"]
+top_radius = 0.025
+bottom_radius = 0.025
+height = 1.4000001
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8ewds"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_7b8se"]
+height = 5.0
+radius = 0.04
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_rd54n"]
+top_radius = 0.04
+bottom_radius = 0.04
+height = 5.0
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2mogg"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_uacog"]
+height = 5.0
+radius = 0.04
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_y3pxi"]
+top_radius = 0.04
+bottom_radius = 0.04
+height = 5.0
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k6sa0"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_1ca8n"]
+height = 2.25
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_bksix"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.25
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5a4sk"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_r61go"]
+height = 2.25
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_uk46u"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.25
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_61v3i"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_px0rx"]
+height = 2.25
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_02b3f"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.25
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hakan"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_y2mjw"]
+height = 2.25
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_pg4xm"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.25
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tnhrc"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_2wmxw"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_08t8f"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_farw7"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_xdnyn"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_oi50a"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1c42c"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_gsjie"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_h87dv"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hlpdc"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_xr84g"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_nl25m"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_la566"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_s04wn"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_oq33t"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kulau"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_1ruos"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_fq87p"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y32o7"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_u2tuk"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_ybucj"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kqwy2"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_7f4l2"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_nwaoa"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_no8kg"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_uyhrj"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_v6kas"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sob1p"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_juaha"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_gr6jf"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yhjr7"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_47yis"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_x8oew"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c64aw"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_bctvm"]
+height = 0.5999999
+radius = 0.022
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_uynwm"]
+top_radius = 0.022
+bottom_radius = 0.022
+height = 0.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_i23gj"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_g32n4"]
+size = Vector3(1, 0.8, 1)
+
+[sub_resource type="BoxMesh" id="BoxMesh_7skga"]
+size = Vector3(1, 0.8, 1)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pd5fv"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ipy23"]
+size = Vector3(1, 0.8, 1)
+
+[sub_resource type="BoxMesh" id="BoxMesh_fm1eo"]
+size = Vector3(1, 0.8, 1)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gt7dm"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_dvs5f"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_m2ss6"]
+size = Vector3(3.4, 0.06, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_madbh"]
+size = Vector3(3.4, 0.06, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5wncn"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ccydw"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_choc8"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_32t3s"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v5c75"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_oc247"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_xv1lc"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ggh87"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ynns5"]
+albedo_color = Color(0.734, 0.5725, 0.3635, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_edde2"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_fy8kg"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4fqqe"]
+size = Vector3(2, 0.04, 0.2)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ao11k"]
+albedo_color = Color(0.748, 0.595, 0.397, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_k6tyo"]
+size = Vector3(0.3, 0.45, 0.5)
+
+[sub_resource type="BoxMesh" id="BoxMesh_2g3k7"]
+size = Vector3(0.3, 0.45, 0.5)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pa3tj"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_mu6m3"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_6rxrs"]
+size = Vector3(3.2, 0.06, 0.45)
+
+[sub_resource type="BoxMesh" id="BoxMesh_w0med"]
+size = Vector3(3.2, 0.06, 0.45)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_grkha"]
+albedo_color = Color(0.5, 0.36, 0.2, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_a1yfi"]
+height = 2.45
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_ui54s"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.45
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_osw5u"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_xbene"]
+height = 2.45
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_evjhj"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 2.45
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_m606g"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_govb7"]
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_hxb5f"]
+top_radius = 0.05
+bottom_radius = 0.05
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_62y7e"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_p6ymp"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_qop78"]
+size = Vector3(1.2, 1.2, 0.05)
+
+[sub_resource type="BoxMesh" id="BoxMesh_1sbvu"]
+size = Vector3(1.2, 1.2, 0.05)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nndk4"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_xiink"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_au2ro"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_8s8b2"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_alxau"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_uvh66"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_88h1v"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_v3n37"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qmiwq"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ow81m"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_cbmnp"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_gt26q"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uj5ey"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_d681b"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ca5qb"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_fcskn"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_roqk3"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_hppca"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_7litv"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_uf1on"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ays1k"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_h2svt"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_14mgl"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_xej6x"]
+size = Vector3(0.4, 0.4, 0.4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lnrrm"]
+albedo_color = Color(0.648, 0.495, 0.297, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_s5n6d"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_tbu86"]
+size = Vector3(0.7, 0.7, 0.7)
+
+[sub_resource type="BoxMesh" id="BoxMesh_sdivr"]
+size = Vector3(0.7, 0.7, 0.7)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1mlge"]
+albedo_color = Color(0.3, 0.45, 0.75, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_2qo3y"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_j6lu7"]
+height = 0.85
+radius = 0.28
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_bugjv"]
+top_radius = 0.28
+bottom_radius = 0.28
+height = 0.85
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8xmql"]
+albedo_color = Color(0.7, 0.25, 0.2, 1)
+roughness = 0.75
+
+[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_66v8j"]
+friction = 0.8
+bounce = 0.05
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_jl4x8"]
+height = 0.85
+radius = 0.28
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_2dnqq"]
+top_radius = 0.28
+bottom_radius = 0.28
+height = 0.85
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yhwwq"]
+albedo_color = Color(0.7, 0.25, 0.2, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_ti6md"]
+size = Vector3(0.12, 0.3, 4)
+
+[sub_resource type="BoxMesh" id="BoxMesh_4ackd"]
+size = Vector3(0.12, 0.3, 4)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xk8qo"]
+albedo_color = Color(0.5, 0.36, 0.2, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_6dg5r"]
+size = Vector3(1.4, 0.1, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_bogif"]
+size = Vector3(1.4, 0.1, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3yyoe"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_shih6"]
+size = Vector3(0.1, 0.6, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_w0q3r"]
+size = Vector3(0.1, 0.6, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0py7j"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2wlpg"]
+size = Vector3(0.1, 0.6, 3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_ihpiu"]
+size = Vector3(0.1, 0.6, 3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u5jgj"]
+albedo_color = Color(0.62, 0.62, 0.6, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_cdc2f"]
+height = 1.3
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_oao1s"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 1.3
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5khef"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_07qhc"]
+height = 1.3
+radius = 0.05
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_j8vqk"]
+top_radius = 0.05
+bottom_radius = 0.05
+height = 1.3
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w6u8e"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="CylinderShape3D" id="CylinderShape3D_0pji4"]
+height = 1.5999999
+radius = 0.03
+
+[sub_resource type="CylinderMesh" id="CylinderMesh_m3cdy"]
+top_radius = 0.03
+bottom_radius = 0.03
+height = 1.5999999
+radial_segments = 12
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ko1lh"]
+albedo_color = Color(0.45, 0.47, 0.52, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_1ndtr"]
+size = Vector3(0.2, 2.1, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_aichm"]
+size = Vector3(0.2, 2.1, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1uh00"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_3xc6d"]
+size = Vector3(0.2, 2.1, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_1fk52"]
+size = Vector3(0.2, 2.1, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k1ltc"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.75
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_2cf2k"]
+size = Vector3(1.2, 0.2, 0.3)
+
+[sub_resource type="BoxMesh" id="BoxMesh_a6am2"]
+size = Vector3(1.2, 0.2, 0.3)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3d2bp"]
+albedo_color = Color(0.72, 0.55, 0.33, 1)
+roughness = 0.75
+
+[node name="Playground" type="Node3D" unique_id=618729331]
+script = ExtResource("1")
+
+[node name="Ledge0_3" type="StaticBody3D" parent="." unique_id=1799188170]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.15, -8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@2" type="CollisionShape3D" parent="Ledge0_3" unique_id=728346722]
+shape = SubResource("BoxShape3D_4dhe6")
+
+[node name="@MeshInstance3D@3" type="MeshInstance3D" parent="Ledge0_3" unique_id=2025282351]
+mesh = SubResource("BoxMesh_5hicw")
+surface_material_override/0 = SubResource("StandardMaterial3D_xxtkw")
+
+[node name="Sign" type="Label3D" parent="." unique_id=553374631]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.65, -7.3)
+pixel_size = 0.002
+billboard = 2
+text = "0.3 m"
+font_size = 96
+
+[node name="Ledge0_6" type="StaticBody3D" parent="." unique_id=1921715406]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, 0.3, -8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@4" type="CollisionShape3D" parent="Ledge0_6" unique_id=1527330619]
+shape = SubResource("BoxShape3D_rddl2")
+
+[node name="@MeshInstance3D@5" type="MeshInstance3D" parent="Ledge0_6" unique_id=1723460903]
+mesh = SubResource("BoxMesh_xw4wq")
+surface_material_override/0 = SubResource("StandardMaterial3D_050xr")
+
+[node name="Sign2" type="Label3D" parent="." unique_id=1367750878]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, 0.95000005, -7.3)
+pixel_size = 0.002
+billboard = 2
+text = "0.6 m"
+font_size = 96
+
+[node name="Ledge0_9" type="StaticBody3D" parent="." unique_id=1343561243]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.3, 0.45, -8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@6" type="CollisionShape3D" parent="Ledge0_9" unique_id=7583193]
+shape = SubResource("BoxShape3D_hwtpv")
+
+[node name="@MeshInstance3D@7" type="MeshInstance3D" parent="Ledge0_9" unique_id=1312381178]
+mesh = SubResource("BoxMesh_7n6l4")
+surface_material_override/0 = SubResource("StandardMaterial3D_snwvs")
+
+[node name="Sign3" type="Label3D" parent="." unique_id=774433855]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.3, 1.25, -7.3)
+pixel_size = 0.002
+billboard = 2
+text = "0.9 m"
+font_size = 96
+
+[node name="Ledge1_2" type="StaticBody3D" parent="." unique_id=829003616]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.2, 0.6, -8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@8" type="CollisionShape3D" parent="Ledge1_2" unique_id=281353423]
+shape = SubResource("BoxShape3D_kms2k")
+
+[node name="@MeshInstance3D@9" type="MeshInstance3D" parent="Ledge1_2" unique_id=1645263417]
+mesh = SubResource("BoxMesh_2r3eo")
+surface_material_override/0 = SubResource("StandardMaterial3D_brwlm")
+
+[node name="Sign4" type="Label3D" parent="." unique_id=896929765]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.2, 1.5500001, -7.3)
+pixel_size = 0.002
+billboard = 2
+text = "1.2 m"
+font_size = 96
+
+[node name="Ledge1_5" type="StaticBody3D" parent="." unique_id=743832350]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.1, 0.75, -8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@10" type="CollisionShape3D" parent="Ledge1_5" unique_id=699844619]
+shape = SubResource("BoxShape3D_yubad")
+
+[node name="@MeshInstance3D@11" type="MeshInstance3D" parent="Ledge1_5" unique_id=397425000]
+mesh = SubResource("BoxMesh_ri6b7")
+surface_material_override/0 = SubResource("StandardMaterial3D_m6rps")
+
+[node name="Sign5" type="Label3D" parent="." unique_id=745827162]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.1, 1.85, -7.3)
+pixel_size = 0.002
+billboard = 2
+text = "1.5 m"
+font_size = 96
+
+[node name="Sign6" type="Label3D" parent="." unique_id=1100200943]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.3, 2.4, -8)
+pixel_size = 0.002
+billboard = 2
+text = "Mantle: both hands on the ledge, push down"
+font_size = 96
+
+[node name="Platform" type="StaticBody3D" parent="." unique_id=109458477]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0.5, -1.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@12" type="CollisionShape3D" parent="Platform" unique_id=1957292503]
+shape = SubResource("BoxShape3D_ov8qe")
+
+[node name="@MeshInstance3D@13" type="MeshInstance3D" parent="Platform" unique_id=736749160]
+mesh = SubResource("BoxMesh_x453x")
+surface_material_override/0 = SubResource("StandardMaterial3D_jkr81")
+
+[node name="Stair0" type="StaticBody3D" parent="." unique_id=1275609374]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0.085, 1.35)
+collision_mask = 29
+
+[node name="@CollisionShape3D@14" type="CollisionShape3D" parent="Stair0" unique_id=1379583722]
+shape = SubResource("BoxShape3D_omqb8")
+
+[node name="@MeshInstance3D@15" type="MeshInstance3D" parent="Stair0" unique_id=1092057087]
+mesh = SubResource("BoxMesh_ugi88")
+surface_material_override/0 = SubResource("StandardMaterial3D_fk7ew")
+
+[node name="Stair1" type="StaticBody3D" parent="." unique_id=1981320977]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0.17, 1.0500001)
+collision_mask = 29
+
+[node name="@CollisionShape3D@16" type="CollisionShape3D" parent="Stair1" unique_id=1149548477]
+shape = SubResource("BoxShape3D_7iiy4")
+
+[node name="@MeshInstance3D@17" type="MeshInstance3D" parent="Stair1" unique_id=1386107255]
+mesh = SubResource("BoxMesh_g5lew")
+surface_material_override/0 = SubResource("StandardMaterial3D_iu1ix")
+
+[node name="Stair2" type="StaticBody3D" parent="." unique_id=766506706]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0.255, 0.75)
+collision_mask = 29
+
+[node name="@CollisionShape3D@18" type="CollisionShape3D" parent="Stair2" unique_id=1353841537]
+shape = SubResource("BoxShape3D_dep6j")
+
+[node name="@MeshInstance3D@19" type="MeshInstance3D" parent="Stair2" unique_id=1090703521]
+mesh = SubResource("BoxMesh_r2bbi")
+surface_material_override/0 = SubResource("StandardMaterial3D_xdwkp")
+
+[node name="Stair3" type="StaticBody3D" parent="." unique_id=284726147]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0.34, 0.45000002)
+collision_mask = 29
+
+[node name="@CollisionShape3D@20" type="CollisionShape3D" parent="Stair3" unique_id=1355532323]
+shape = SubResource("BoxShape3D_tvwdx")
+
+[node name="@MeshInstance3D@21" type="MeshInstance3D" parent="Stair3" unique_id=1562404823]
+mesh = SubResource("BoxMesh_pxm47")
+surface_material_override/0 = SubResource("StandardMaterial3D_mo4la")
+
+[node name="Stair4" type="StaticBody3D" parent="." unique_id=1234215978]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0.425, 0.15)
+collision_mask = 29
+
+[node name="@CollisionShape3D@22" type="CollisionShape3D" parent="Stair4" unique_id=1283632378]
+shape = SubResource("BoxShape3D_a72v8")
+
+[node name="@MeshInstance3D@23" type="MeshInstance3D" parent="Stair4" unique_id=469805323]
+mesh = SubResource("BoxMesh_2fuex")
+surface_material_override/0 = SubResource("StandardMaterial3D_wku2t")
+
+[node name="RampWalkable" type="StaticBody3D" parent="." unique_id=1110832891]
+transform = Transform3D(1, 0, 0, 0, 0.95105654, 0.309017, 0, -0.309017, 0.95105654, 7, 0.5, -4.5388417)
+collision_mask = 29
+
+[node name="@CollisionShape3D@24" type="CollisionShape3D" parent="RampWalkable" unique_id=861715653]
+shape = SubResource("BoxShape3D_jp1lm")
+
+[node name="@MeshInstance3D@25" type="MeshInstance3D" parent="RampWalkable" unique_id=1343112187]
+mesh = SubResource("BoxMesh_oen35")
+surface_material_override/0 = SubResource("StandardMaterial3D_k3tyx")
+
+[node name="RampSteep" type="StaticBody3D" parent="." unique_id=1758513614]
+transform = Transform3D(1, 0, 0, 0, 0.76604444, 0.6427876, 0, -0.6427876, 0.76604444, 9, 0.5, -3.5958767)
+collision_mask = 29
+
+[node name="@CollisionShape3D@26" type="CollisionShape3D" parent="RampSteep" unique_id=1063220469]
+shape = SubResource("BoxShape3D_43gh8")
+
+[node name="@MeshInstance3D@27" type="MeshInstance3D" parent="RampSteep" unique_id=263172454]
+mesh = SubResource("BoxMesh_po2hk")
+surface_material_override/0 = SubResource("StandardMaterial3D_tre4p")
+
+[node name="Sign7" type="Label3D" parent="." unique_id=1048291781]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 1.6, -4.5)
+pixel_size = 0.002
+billboard = 2
+text = "18° ramp"
+font_size = 96
+
+[node name="Sign8" type="Label3D" parent="." unique_id=1375561333]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 1.6, -4.5)
+pixel_size = 0.002
+billboard = 2
+text = "40° (too steep)"
+font_size = 96
+
+[node name="ClimbWall" type="StaticBody3D" parent="." unique_id=1000747054]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.25, 1.2, -1.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@28" type="CollisionShape3D" parent="ClimbWall" unique_id=1880253391]
+shape = SubResource("BoxShape3D_facsp")
+
+[node name="@MeshInstance3D@29" type="MeshInstance3D" parent="ClimbWall" unique_id=1942781620]
+mesh = SubResource("BoxMesh_wgbty")
+surface_material_override/0 = SubResource("StandardMaterial3D_o7jyf")
+
+[node name="Hold" type="StaticBody3D" parent="." unique_id=905413475]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.44020626, -2.6817672)
+collision_mask = 29
+
+[node name="@CollisionShape3D@30" type="CollisionShape3D" parent="Hold" unique_id=240935325]
+shape = SubResource("BoxShape3D_af7y8")
+
+[node name="@MeshInstance3D@31" type="MeshInstance3D" parent="Hold" unique_id=178129895]
+mesh = SubResource("BoxMesh_ttk7h")
+surface_material_override/0 = SubResource("StandardMaterial3D_ucg7x")
+
+[node name="Hold2" type="StaticBody3D" parent="." unique_id=1804267125]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.45768443, -1.9656726)
+collision_mask = 29
+
+[node name="@CollisionShape3D@32" type="CollisionShape3D" parent="Hold2" unique_id=547675098]
+shape = SubResource("BoxShape3D_2di82")
+
+[node name="@MeshInstance3D@33" type="MeshInstance3D" parent="Hold2" unique_id=11331324]
+mesh = SubResource("BoxMesh_2cxnl")
+surface_material_override/0 = SubResource("StandardMaterial3D_7y4m6")
+
+[node name="Hold3" type="StaticBody3D" parent="." unique_id=1029125534]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.426689, -0.99399424)
+collision_mask = 29
+
+[node name="@CollisionShape3D@34" type="CollisionShape3D" parent="Hold3" unique_id=1821779322]
+shape = SubResource("BoxShape3D_ui0pa")
+
+[node name="@MeshInstance3D@35" type="MeshInstance3D" parent="Hold3" unique_id=235564324]
+mesh = SubResource("BoxMesh_8yeei")
+surface_material_override/0 = SubResource("StandardMaterial3D_t5xen")
+
+[node name="Hold4" type="StaticBody3D" parent="." unique_id=1455494716]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.34841645, -0.20665197)
+collision_mask = 29
+
+[node name="@CollisionShape3D@36" type="CollisionShape3D" parent="Hold4" unique_id=1218022557]
+shape = SubResource("BoxShape3D_2xwyj")
+
+[node name="@MeshInstance3D@37" type="MeshInstance3D" parent="Hold4" unique_id=723497931]
+mesh = SubResource("BoxMesh_jaan3")
+surface_material_override/0 = SubResource("StandardMaterial3D_ibb3u")
+
+[node name="Hold5" type="StaticBody3D" parent="." unique_id=1225031172]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.7611881, -2.6771693)
+collision_mask = 29
+
+[node name="@CollisionShape3D@38" type="CollisionShape3D" parent="Hold5" unique_id=295220989]
+shape = SubResource("BoxShape3D_ulryc")
+
+[node name="@MeshInstance3D@39" type="MeshInstance3D" parent="Hold5" unique_id=1275967587]
+mesh = SubResource("BoxMesh_mp4hn")
+surface_material_override/0 = SubResource("StandardMaterial3D_kv6g1")
+
+[node name="Hold6" type="StaticBody3D" parent="." unique_id=1007631387]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.71293557, -1.7542278)
+collision_mask = 29
+
+[node name="@CollisionShape3D@40" type="CollisionShape3D" parent="Hold6" unique_id=1261228435]
+shape = SubResource("BoxShape3D_kompm")
+
+[node name="@MeshInstance3D@41" type="MeshInstance3D" parent="Hold6" unique_id=1720307925]
+mesh = SubResource("BoxMesh_01ysc")
+surface_material_override/0 = SubResource("StandardMaterial3D_dpsmv")
+
+[node name="Hold7" type="StaticBody3D" parent="." unique_id=645032969]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.76820326, -1.1971252)
+collision_mask = 29
+
+[node name="@CollisionShape3D@42" type="CollisionShape3D" parent="Hold7" unique_id=633990311]
+shape = SubResource("BoxShape3D_cmx2w")
+
+[node name="@MeshInstance3D@43" type="MeshInstance3D" parent="Hold7" unique_id=1831495203]
+mesh = SubResource("BoxMesh_o4lay")
+surface_material_override/0 = SubResource("StandardMaterial3D_q0yk0")
+
+[node name="Hold8" type="StaticBody3D" parent="." unique_id=814018177]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 0.7179765, -0.15788585)
+collision_mask = 29
+
+[node name="@CollisionShape3D@44" type="CollisionShape3D" parent="Hold8" unique_id=1275144202]
+shape = SubResource("BoxShape3D_as2wx")
+
+[node name="@MeshInstance3D@45" type="MeshInstance3D" parent="Hold8" unique_id=1012336227]
+mesh = SubResource("BoxMesh_e7gj8")
+surface_material_override/0 = SubResource("StandardMaterial3D_bcg5q")
+
+[node name="Hold9" type="StaticBody3D" parent="." unique_id=20511277]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.1334486, -2.7491925)
+collision_mask = 29
+
+[node name="@CollisionShape3D@46" type="CollisionShape3D" parent="Hold9" unique_id=854694542]
+shape = SubResource("BoxShape3D_envay")
+
+[node name="@MeshInstance3D@47" type="MeshInstance3D" parent="Hold9" unique_id=1502497175]
+mesh = SubResource("BoxMesh_7cls0")
+surface_material_override/0 = SubResource("StandardMaterial3D_vwl8l")
+
+[node name="Hold10" type="StaticBody3D" parent="." unique_id=267698105]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.1389843, -1.8112569)
+collision_mask = 29
+
+[node name="@CollisionShape3D@48" type="CollisionShape3D" parent="Hold10" unique_id=329693682]
+shape = SubResource("BoxShape3D_2bpuj")
+
+[node name="@MeshInstance3D@49" type="MeshInstance3D" parent="Hold10" unique_id=936013419]
+mesh = SubResource("BoxMesh_qbpbn")
+surface_material_override/0 = SubResource("StandardMaterial3D_18eo1")
+
+[node name="Hold11" type="StaticBody3D" parent="." unique_id=1154044815]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.130292, -1.0708437)
+collision_mask = 29
+
+[node name="@CollisionShape3D@50" type="CollisionShape3D" parent="Hold11" unique_id=1314351845]
+shape = SubResource("BoxShape3D_swxwg")
+
+[node name="@MeshInstance3D@51" type="MeshInstance3D" parent="Hold11" unique_id=2279401]
+mesh = SubResource("BoxMesh_v5dry")
+surface_material_override/0 = SubResource("StandardMaterial3D_5074v")
+
+[node name="Hold12" type="StaticBody3D" parent="." unique_id=459172857]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.1382879, -0.15012395)
+collision_mask = 29
+
+[node name="@CollisionShape3D@52" type="CollisionShape3D" parent="Hold12" unique_id=867261828]
+shape = SubResource("BoxShape3D_u0ss8")
+
+[node name="@MeshInstance3D@53" type="MeshInstance3D" parent="Hold12" unique_id=257753865]
+mesh = SubResource("BoxMesh_me7bm")
+surface_material_override/0 = SubResource("StandardMaterial3D_3schc")
+
+[node name="Hold13" type="StaticBody3D" parent="." unique_id=1770368485]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.440625, -2.8117661)
+collision_mask = 29
+
+[node name="@CollisionShape3D@54" type="CollisionShape3D" parent="Hold13" unique_id=623871349]
+shape = SubResource("BoxShape3D_xce76")
+
+[node name="@MeshInstance3D@55" type="MeshInstance3D" parent="Hold13" unique_id=251766239]
+mesh = SubResource("BoxMesh_kjj7b")
+surface_material_override/0 = SubResource("StandardMaterial3D_phgyb")
+
+[node name="Hold14" type="StaticBody3D" parent="." unique_id=1287289872]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.5052737, -2.0014431)
+collision_mask = 29
+
+[node name="@CollisionShape3D@56" type="CollisionShape3D" parent="Hold14" unique_id=1506927752]
+shape = SubResource("BoxShape3D_y32so")
+
+[node name="@MeshInstance3D@57" type="MeshInstance3D" parent="Hold14" unique_id=609525297]
+mesh = SubResource("BoxMesh_h3l2e")
+surface_material_override/0 = SubResource("StandardMaterial3D_5thfd")
+
+[node name="Hold15" type="StaticBody3D" parent="." unique_id=571683643]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.4000812, -1.0909216)
+collision_mask = 29
+
+[node name="@CollisionShape3D@58" type="CollisionShape3D" parent="Hold15" unique_id=954583856]
+shape = SubResource("BoxShape3D_euosm")
+
+[node name="@MeshInstance3D@59" type="MeshInstance3D" parent="Hold15" unique_id=1970157504]
+mesh = SubResource("BoxMesh_ou71q")
+surface_material_override/0 = SubResource("StandardMaterial3D_r6whk")
+
+[node name="Hold16" type="StaticBody3D" parent="." unique_id=1117430583]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.4437553, -0.33921808)
+collision_mask = 29
+
+[node name="@CollisionShape3D@60" type="CollisionShape3D" parent="Hold16" unique_id=1090814770]
+shape = SubResource("BoxShape3D_pb4df")
+
+[node name="@MeshInstance3D@61" type="MeshInstance3D" parent="Hold16" unique_id=1751588587]
+mesh = SubResource("BoxMesh_1w5c8")
+surface_material_override/0 = SubResource("StandardMaterial3D_vmw2n")
+
+[node name="Hold17" type="StaticBody3D" parent="." unique_id=1974959104]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.7602631, -2.715142)
+collision_mask = 29
+
+[node name="@CollisionShape3D@62" type="CollisionShape3D" parent="Hold17" unique_id=343654248]
+shape = SubResource("BoxShape3D_nymjq")
+
+[node name="@MeshInstance3D@63" type="MeshInstance3D" parent="Hold17" unique_id=2102907842]
+mesh = SubResource("BoxMesh_ixis2")
+surface_material_override/0 = SubResource("StandardMaterial3D_3cuc5")
+
+[node name="Hold18" type="StaticBody3D" parent="." unique_id=257141683]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.7790391, -1.9359214)
+collision_mask = 29
+
+[node name="@CollisionShape3D@64" type="CollisionShape3D" parent="Hold18" unique_id=393457562]
+shape = SubResource("BoxShape3D_ed34t")
+
+[node name="@MeshInstance3D@65" type="MeshInstance3D" parent="Hold18" unique_id=878266270]
+mesh = SubResource("BoxMesh_7x2sw")
+surface_material_override/0 = SubResource("StandardMaterial3D_ktxxr")
+
+[node name="Hold19" type="StaticBody3D" parent="." unique_id=988581760]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.7909979, -1.0592806)
+collision_mask = 29
+
+[node name="@CollisionShape3D@66" type="CollisionShape3D" parent="Hold19" unique_id=1558955400]
+shape = SubResource("BoxShape3D_onnij")
+
+[node name="@MeshInstance3D@67" type="MeshInstance3D" parent="Hold19" unique_id=138450890]
+mesh = SubResource("BoxMesh_1xeh3")
+surface_material_override/0 = SubResource("StandardMaterial3D_wsii5")
+
+[node name="Hold20" type="StaticBody3D" parent="." unique_id=1819832026]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 1.7982007, -0.16059306)
+collision_mask = 29
+
+[node name="@CollisionShape3D@68" type="CollisionShape3D" parent="Hold20" unique_id=418509876]
+shape = SubResource("BoxShape3D_vp27g")
+
+[node name="@MeshInstance3D@69" type="MeshInstance3D" parent="Hold20" unique_id=1747279122]
+mesh = SubResource("BoxMesh_jclyj")
+surface_material_override/0 = SubResource("StandardMaterial3D_ixgss")
+
+[node name="Hold21" type="StaticBody3D" parent="." unique_id=983311502]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 2.139201, -2.5566623)
+collision_mask = 29
+
+[node name="@CollisionShape3D@70" type="CollisionShape3D" parent="Hold21" unique_id=957548083]
+shape = SubResource("BoxShape3D_fydnx")
+
+[node name="@MeshInstance3D@71" type="MeshInstance3D" parent="Hold21" unique_id=787253778]
+mesh = SubResource("BoxMesh_htt14")
+surface_material_override/0 = SubResource("StandardMaterial3D_jf0e5")
+
+[node name="Hold22" type="StaticBody3D" parent="." unique_id=690574285]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 2.0955694, -1.9634038)
+collision_mask = 29
+
+[node name="@CollisionShape3D@72" type="CollisionShape3D" parent="Hold22" unique_id=16615278]
+shape = SubResource("BoxShape3D_5bfuw")
+
+[node name="@MeshInstance3D@73" type="MeshInstance3D" parent="Hold22" unique_id=210062975]
+mesh = SubResource("BoxMesh_8s5yp")
+surface_material_override/0 = SubResource("StandardMaterial3D_kfd1y")
+
+[node name="Hold23" type="StaticBody3D" parent="." unique_id=1003225236]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 2.115701, -1.1305425)
+collision_mask = 29
+
+[node name="@CollisionShape3D@74" type="CollisionShape3D" parent="Hold23" unique_id=145291566]
+shape = SubResource("BoxShape3D_3ms4o")
+
+[node name="@MeshInstance3D@75" type="MeshInstance3D" parent="Hold23" unique_id=930949290]
+mesh = SubResource("BoxMesh_0xtc5")
+surface_material_override/0 = SubResource("StandardMaterial3D_xvaun")
+
+[node name="Hold24" type="StaticBody3D" parent="." unique_id=390695758]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.46, 2.176404, -0.19380203)
+collision_mask = 29
+
+[node name="@CollisionShape3D@76" type="CollisionShape3D" parent="Hold24" unique_id=1136321999]
+shape = SubResource("BoxShape3D_wq00a")
+
+[node name="@MeshInstance3D@77" type="MeshInstance3D" parent="Hold24" unique_id=782194413]
+mesh = SubResource("BoxMesh_babem")
+surface_material_override/0 = SubResource("StandardMaterial3D_5fo3m")
+
+[node name="Sign9" type="Label3D" parent="." unique_id=104350837]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 3, -1.5)
+pixel_size = 0.002
+billboard = 2
+text = "Climbing wall: grip the holds"
+font_size = 96
+
+[node name="PostA" type="StaticBody3D" parent="." unique_id=249821925]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 1.125, 2.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@78" type="CollisionShape3D" parent="PostA" unique_id=598325418]
+shape = SubResource("CylinderShape3D_8jvjl")
+
+[node name="@MeshInstance3D@79" type="MeshInstance3D" parent="PostA" unique_id=968733365]
+mesh = SubResource("CylinderMesh_i6wec")
+surface_material_override/0 = SubResource("StandardMaterial3D_3wn44")
+
+[node name="PostB" type="StaticBody3D" parent="." unique_id=1136929827]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.4, 1.125, 2.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@80" type="CollisionShape3D" parent="PostB" unique_id=1954515651]
+shape = SubResource("CylinderShape3D_l4xjc")
+
+[node name="@MeshInstance3D@81" type="MeshInstance3D" parent="PostB" unique_id=1979159951]
+mesh = SubResource("CylinderMesh_tepdl")
+surface_material_override/0 = SubResource("StandardMaterial3D_g05k5")
+
+[node name="PullUpBar" type="StaticBody3D" parent="." unique_id=93580726]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 5.7, 2.1, 2.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@82" type="CollisionShape3D" parent="PullUpBar" unique_id=792144980]
+shape = SubResource("CylinderShape3D_421mk")
+
+[node name="@MeshInstance3D@83" type="MeshInstance3D" parent="PullUpBar" unique_id=740696686]
+mesh = SubResource("CylinderMesh_pm006")
+surface_material_override/0 = SubResource("StandardMaterial3D_8ewds")
+
+[node name="Sign10" type="Label3D" parent="." unique_id=2129836956]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7, 2.6, 2.5)
+pixel_size = 0.002
+billboard = 2
+text = "Pull-up bar"
+font_size = 96
+
+[node name="MonkeyRailL" type="StaticBody3D" parent="." unique_id=1212809276]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 7.5, 2.25, 4.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@84" type="CollisionShape3D" parent="MonkeyRailL" unique_id=1369996284]
+shape = SubResource("CylinderShape3D_7b8se")
+
+[node name="@MeshInstance3D@85" type="MeshInstance3D" parent="MonkeyRailL" unique_id=236646835]
+mesh = SubResource("CylinderMesh_rd54n")
+surface_material_override/0 = SubResource("StandardMaterial3D_2mogg")
+
+[node name="MonkeyRailR" type="StaticBody3D" parent="." unique_id=1951219727]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 7.5, 2.25, 5.1)
+collision_mask = 29
+
+[node name="@CollisionShape3D@86" type="CollisionShape3D" parent="MonkeyRailR" unique_id=425555117]
+shape = SubResource("CylinderShape3D_uacog")
+
+[node name="@MeshInstance3D@87" type="MeshInstance3D" parent="MonkeyRailR" unique_id=898262856]
+mesh = SubResource("CylinderMesh_y3pxi")
+surface_material_override/0 = SubResource("StandardMaterial3D_k6sa0")
+
+[node name="MonkeyPost" type="StaticBody3D" parent="." unique_id=149588059]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 1.125, 4.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@88" type="CollisionShape3D" parent="MonkeyPost" unique_id=1052705945]
+shape = SubResource("CylinderShape3D_1ca8n")
+
+[node name="@MeshInstance3D@89" type="MeshInstance3D" parent="MonkeyPost" unique_id=2110611309]
+mesh = SubResource("CylinderMesh_bksix")
+surface_material_override/0 = SubResource("StandardMaterial3D_5a4sk")
+
+[node name="MonkeyPost2" type="StaticBody3D" parent="." unique_id=2008817982]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 1.125, 5.1)
+collision_mask = 29
+
+[node name="@CollisionShape3D@90" type="CollisionShape3D" parent="MonkeyPost2" unique_id=2125767927]
+shape = SubResource("CylinderShape3D_r61go")
+
+[node name="@MeshInstance3D@91" type="MeshInstance3D" parent="MonkeyPost2" unique_id=784335439]
+mesh = SubResource("CylinderMesh_uk46u")
+surface_material_override/0 = SubResource("StandardMaterial3D_61v3i")
+
+[node name="MonkeyPost3" type="StaticBody3D" parent="." unique_id=1762709501]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 1.125, 4.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@92" type="CollisionShape3D" parent="MonkeyPost3" unique_id=1222498028]
+shape = SubResource("CylinderShape3D_px0rx")
+
+[node name="@MeshInstance3D@93" type="MeshInstance3D" parent="MonkeyPost3" unique_id=1356701204]
+mesh = SubResource("CylinderMesh_02b3f")
+surface_material_override/0 = SubResource("StandardMaterial3D_hakan")
+
+[node name="MonkeyPost4" type="StaticBody3D" parent="." unique_id=840024771]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 1.125, 5.1)
+collision_mask = 29
+
+[node name="@CollisionShape3D@94" type="CollisionShape3D" parent="MonkeyPost4" unique_id=782135389]
+shape = SubResource("CylinderShape3D_y2mjw")
+
+[node name="@MeshInstance3D@95" type="MeshInstance3D" parent="MonkeyPost4" unique_id=263581036]
+mesh = SubResource("CylinderMesh_pg4xm")
+surface_material_override/0 = SubResource("StandardMaterial3D_tnhrc")
+
+[node name="Rung" type="StaticBody3D" parent="." unique_id=742488067]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 5.4, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@96" type="CollisionShape3D" parent="Rung" unique_id=867156861]
+shape = SubResource("CylinderShape3D_2wmxw")
+
+[node name="@MeshInstance3D@97" type="MeshInstance3D" parent="Rung" unique_id=678252672]
+mesh = SubResource("CylinderMesh_08t8f")
+surface_material_override/0 = SubResource("StandardMaterial3D_farw7")
+
+[node name="Rung2" type="StaticBody3D" parent="." unique_id=1289501329]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 5.8, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@98" type="CollisionShape3D" parent="Rung2" unique_id=329533176]
+shape = SubResource("CylinderShape3D_xdnyn")
+
+[node name="@MeshInstance3D@99" type="MeshInstance3D" parent="Rung2" unique_id=731271888]
+mesh = SubResource("CylinderMesh_oi50a")
+surface_material_override/0 = SubResource("StandardMaterial3D_1c42c")
+
+[node name="Rung3" type="StaticBody3D" parent="." unique_id=385676271]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 6.2000003, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@100" type="CollisionShape3D" parent="Rung3" unique_id=920598834]
+shape = SubResource("CylinderShape3D_gsjie")
+
+[node name="@MeshInstance3D@101" type="MeshInstance3D" parent="Rung3" unique_id=350064303]
+mesh = SubResource("CylinderMesh_h87dv")
+surface_material_override/0 = SubResource("StandardMaterial3D_hlpdc")
+
+[node name="Rung4" type="StaticBody3D" parent="." unique_id=591818662]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 6.6000004, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@102" type="CollisionShape3D" parent="Rung4" unique_id=1234932139]
+shape = SubResource("CylinderShape3D_xr84g")
+
+[node name="@MeshInstance3D@103" type="MeshInstance3D" parent="Rung4" unique_id=1352407418]
+mesh = SubResource("CylinderMesh_nl25m")
+surface_material_override/0 = SubResource("StandardMaterial3D_la566")
+
+[node name="Rung5" type="StaticBody3D" parent="." unique_id=1187178393]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 7.0000005, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@104" type="CollisionShape3D" parent="Rung5" unique_id=212923013]
+shape = SubResource("CylinderShape3D_s04wn")
+
+[node name="@MeshInstance3D@105" type="MeshInstance3D" parent="Rung5" unique_id=1265263889]
+mesh = SubResource("CylinderMesh_oq33t")
+surface_material_override/0 = SubResource("StandardMaterial3D_kulau")
+
+[node name="Rung6" type="StaticBody3D" parent="." unique_id=1482140562]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 7.4000006, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@106" type="CollisionShape3D" parent="Rung6" unique_id=131110321]
+shape = SubResource("CylinderShape3D_1ruos")
+
+[node name="@MeshInstance3D@107" type="MeshInstance3D" parent="Rung6" unique_id=1075885539]
+mesh = SubResource("CylinderMesh_fq87p")
+surface_material_override/0 = SubResource("StandardMaterial3D_y32o7")
+
+[node name="Rung7" type="StaticBody3D" parent="." unique_id=231634229]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 7.8000007, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@108" type="CollisionShape3D" parent="Rung7" unique_id=399658217]
+shape = SubResource("CylinderShape3D_u2tuk")
+
+[node name="@MeshInstance3D@109" type="MeshInstance3D" parent="Rung7" unique_id=128410560]
+mesh = SubResource("CylinderMesh_ybucj")
+surface_material_override/0 = SubResource("StandardMaterial3D_kqwy2")
+
+[node name="Rung8" type="StaticBody3D" parent="." unique_id=1804269736]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 8.200001, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@110" type="CollisionShape3D" parent="Rung8" unique_id=1672546961]
+shape = SubResource("CylinderShape3D_7f4l2")
+
+[node name="@MeshInstance3D@111" type="MeshInstance3D" parent="Rung8" unique_id=589819590]
+mesh = SubResource("CylinderMesh_nwaoa")
+surface_material_override/0 = SubResource("StandardMaterial3D_no8kg")
+
+[node name="Rung9" type="StaticBody3D" parent="." unique_id=1586193411]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 8.6, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@112" type="CollisionShape3D" parent="Rung9" unique_id=2074713806]
+shape = SubResource("CylinderShape3D_uyhrj")
+
+[node name="@MeshInstance3D@113" type="MeshInstance3D" parent="Rung9" unique_id=1591758491]
+mesh = SubResource("CylinderMesh_v6kas")
+surface_material_override/0 = SubResource("StandardMaterial3D_sob1p")
+
+[node name="Rung10" type="StaticBody3D" parent="." unique_id=1247988459]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 9, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@114" type="CollisionShape3D" parent="Rung10" unique_id=1402657492]
+shape = SubResource("CylinderShape3D_juaha")
+
+[node name="@MeshInstance3D@115" type="MeshInstance3D" parent="Rung10" unique_id=1375520156]
+mesh = SubResource("CylinderMesh_gr6jf")
+surface_material_override/0 = SubResource("StandardMaterial3D_yhjr7")
+
+[node name="Rung11" type="StaticBody3D" parent="." unique_id=776706782]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 9.4, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@116" type="CollisionShape3D" parent="Rung11" unique_id=2025646066]
+shape = SubResource("CylinderShape3D_47yis")
+
+[node name="@MeshInstance3D@117" type="MeshInstance3D" parent="Rung11" unique_id=184953673]
+mesh = SubResource("CylinderMesh_x8oew")
+surface_material_override/0 = SubResource("StandardMaterial3D_c64aw")
+
+[node name="Rung12" type="StaticBody3D" parent="." unique_id=848783640]
+transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 9.799999, 2.2, 4.8)
+collision_mask = 29
+
+[node name="@CollisionShape3D@118" type="CollisionShape3D" parent="Rung12" unique_id=231921737]
+shape = SubResource("CylinderShape3D_bctvm")
+
+[node name="@MeshInstance3D@119" type="MeshInstance3D" parent="Rung12" unique_id=247424812]
+mesh = SubResource("CylinderMesh_uynwm")
+surface_material_override/0 = SubResource("StandardMaterial3D_i23gj")
+
+[node name="Sign11" type="Label3D" parent="." unique_id=1530520906]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 2.8, 4.8)
+pixel_size = 0.002
+billboard = 2
+text = "Monkey bars"
+font_size = 96
+
+[node name="BridgeBlockA" type="StaticBody3D" parent="." unique_id=688873335]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0.4, -5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@120" type="CollisionShape3D" parent="BridgeBlockA" unique_id=210818070]
+shape = SubResource("BoxShape3D_g32n4")
+
+[node name="@MeshInstance3D@121" type="MeshInstance3D" parent="BridgeBlockA" unique_id=1647254866]
+mesh = SubResource("BoxMesh_7skga")
+surface_material_override/0 = SubResource("StandardMaterial3D_pd5fv")
+
+[node name="BridgeBlockB" type="StaticBody3D" parent="." unique_id=1914973307]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0.4, -5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@122" type="CollisionShape3D" parent="BridgeBlockB" unique_id=23814349]
+shape = SubResource("BoxShape3D_ipy23")
+
+[node name="@MeshInstance3D@123" type="MeshInstance3D" parent="BridgeBlockB" unique_id=1803819650]
+mesh = SubResource("BoxMesh_fm1eo")
+surface_material_override/0 = SubResource("StandardMaterial3D_gt7dm")
+
+[node name="BridgePlank" type="RigidBody3D" parent="." unique_id=786349174 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.25, 0.83, -5)
+collision_mask = 29
+mass = 9.0
+physics_material_override = SubResource("PhysicsMaterial_dvs5f")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@124" type="CollisionShape3D" parent="BridgePlank" unique_id=271781665]
+shape = SubResource("BoxShape3D_m2ss6")
+
+[node name="@MeshInstance3D@125" type="MeshInstance3D" parent="BridgePlank" unique_id=404368994]
+mesh = SubResource("BoxMesh_madbh")
+surface_material_override/0 = SubResource("StandardMaterial3D_5wncn")
+
+[node name="Sign12" type="Label3D" parent="." unique_id=1151045766]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.25, 1.6, -5)
+pixel_size = 0.002
+billboard = 2
+text = "Plank bridge"
+font_size = 96
+
+[node name="Plank0" type="RigidBody3D" parent="." unique_id=1183094856 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0.02, -2.6)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_ccydw")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@126" type="CollisionShape3D" parent="Plank0" unique_id=107863524]
+shape = SubResource("BoxShape3D_choc8")
+
+[node name="@MeshInstance3D@127" type="MeshInstance3D" parent="Plank0" unique_id=397646575]
+mesh = SubResource("BoxMesh_32t3s")
+surface_material_override/0 = SubResource("StandardMaterial3D_v5c75")
+
+[node name="Plank1" type="RigidBody3D" parent="." unique_id=1265199910 groups=["prop"]]
+transform = Transform3D(0.9950042, 0, 0.09983342, 0, 1, 0, -0.09983342, 0, 0.9950042, -5, 0.065, -2.55)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_oc247")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@128" type="CollisionShape3D" parent="Plank1" unique_id=283597825]
+shape = SubResource("BoxShape3D_xv1lc")
+
+[node name="@MeshInstance3D@129" type="MeshInstance3D" parent="Plank1" unique_id=1181628895]
+mesh = SubResource("BoxMesh_ggh87")
+surface_material_override/0 = SubResource("StandardMaterial3D_ynns5")
+
+[node name="Plank2" type="RigidBody3D" parent="." unique_id=1157859206 groups=["prop"]]
+transform = Transform3D(0.9800666, 0, 0.19866933, 0, 1, 0, -0.19866933, 0, 0.9800666, -5, 0.11, -2.5)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_edde2")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@130" type="CollisionShape3D" parent="Plank2" unique_id=1952886845]
+shape = SubResource("BoxShape3D_fy8kg")
+
+[node name="@MeshInstance3D@131" type="MeshInstance3D" parent="Plank2" unique_id=1018049348]
+mesh = SubResource("BoxMesh_4fqqe")
+surface_material_override/0 = SubResource("StandardMaterial3D_ao11k")
+
+[node name="SeesawPivot" type="StaticBody3D" parent="." unique_id=1132132595]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 0.225, -1.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@132" type="CollisionShape3D" parent="SeesawPivot" unique_id=1365127290]
+shape = SubResource("BoxShape3D_k6tyo")
+
+[node name="@MeshInstance3D@133" type="MeshInstance3D" parent="SeesawPivot" unique_id=1637160679]
+mesh = SubResource("BoxMesh_2g3k7")
+surface_material_override/0 = SubResource("StandardMaterial3D_pa3tj")
+
+[node name="Seesaw" type="RigidBody3D" parent="." unique_id=297803024 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 0.48, -1.5)
+collision_mask = 29
+mass = 12.0
+physics_material_override = SubResource("PhysicsMaterial_mu6m3")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@134" type="CollisionShape3D" parent="Seesaw" unique_id=1017013530]
+shape = SubResource("BoxShape3D_6rxrs")
+
+[node name="@MeshInstance3D@135" type="MeshInstance3D" parent="Seesaw" unique_id=899228513]
+mesh = SubResource("BoxMesh_w0med")
+surface_material_override/0 = SubResource("StandardMaterial3D_grkha")
+
+[node name="SeesawHinge" type="HingeJoint3D" parent="." unique_id=551149467]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 0.48, -1.5)
+node_a = NodePath("../SeesawPivot")
+node_b = NodePath("../Seesaw")
+
+[node name="Sign13" type="Label3D" parent="." unique_id=1401010747]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 1.3, -1.5)
+pixel_size = 0.002
+billboard = 2
+text = "Seesaw"
+font_size = 96
+
+[node name="SwingPostA" type="StaticBody3D" parent="." unique_id=1338566805]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 1.225, 1.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@136" type="CollisionShape3D" parent="SwingPostA" unique_id=2094952210]
+shape = SubResource("CylinderShape3D_a1yfi")
+
+[node name="@MeshInstance3D@137" type="MeshInstance3D" parent="SwingPostA" unique_id=1400293600]
+mesh = SubResource("CylinderMesh_ui54s")
+surface_material_override/0 = SubResource("StandardMaterial3D_osw5u")
+
+[node name="SwingPostB" type="StaticBody3D" parent="." unique_id=525503595]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 1.225, 1.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@138" type="CollisionShape3D" parent="SwingPostB" unique_id=642421014]
+shape = SubResource("CylinderShape3D_xbene")
+
+[node name="@MeshInstance3D@139" type="MeshInstance3D" parent="SwingPostB" unique_id=1361976086]
+mesh = SubResource("CylinderMesh_evjhj")
+surface_material_override/0 = SubResource("StandardMaterial3D_m606g")
+
+[node name="SwingBeam" type="StaticBody3D" parent="." unique_id=293251746]
+transform = Transform3D(0, -1, 0, 0, 0, -1, 1, 0, 0, -6, 2.4, 1.5)
+collision_mask = 29
+
+[node name="@CollisionShape3D@140" type="CollisionShape3D" parent="SwingBeam" unique_id=2094642867]
+shape = SubResource("CylinderShape3D_govb7")
+
+[node name="@MeshInstance3D@141" type="MeshInstance3D" parent="SwingBeam" unique_id=38114652]
+mesh = SubResource("CylinderMesh_hxb5f")
+surface_material_override/0 = SubResource("StandardMaterial3D_62y7e")
+
+[node name="SwingBoard" type="RigidBody3D" parent="." unique_id=1545369648 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 1.75, 1.5)
+collision_mask = 29
+mass = 10.0
+physics_material_override = SubResource("PhysicsMaterial_p6ymp")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@142" type="CollisionShape3D" parent="SwingBoard" unique_id=179091618]
+shape = SubResource("BoxShape3D_qop78")
+
+[node name="@MeshInstance3D@143" type="MeshInstance3D" parent="SwingBoard" unique_id=1917258667]
+mesh = SubResource("BoxMesh_1sbvu")
+surface_material_override/0 = SubResource("StandardMaterial3D_nndk4")
+
+[node name="SwingHinge" type="HingeJoint3D" parent="." unique_id=602015624]
+transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -6, 2.35, 1.5)
+node_a = NodePath("../SwingBeam")
+node_b = NodePath("../SwingBoard")
+
+[node name="Sign14" type="Label3D" parent="." unique_id=136701203]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 2.9, 1.5)
+pixel_size = 0.002
+billboard = 2
+text = "Hanging board"
+font_size = 96
+
+[node name="Crate0" type="RigidBody3D" parent="." unique_id=684290209 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 0.2, 2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_xiink")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@144" type="CollisionShape3D" parent="Crate0" unique_id=127974443]
+shape = SubResource("BoxShape3D_au2ro")
+
+[node name="@MeshInstance3D@145" type="MeshInstance3D" parent="Crate0" unique_id=2019507026]
+mesh = SubResource("BoxMesh_8s8b2")
+surface_material_override/0 = SubResource("StandardMaterial3D_alxau")
+
+[node name="Crate1" type="RigidBody3D" parent="." unique_id=1522416465 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.08, 0.2, 2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_uvh66")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@146" type="CollisionShape3D" parent="Crate1" unique_id=58853899]
+shape = SubResource("BoxShape3D_88h1v")
+
+[node name="@MeshInstance3D@147" type="MeshInstance3D" parent="Crate1" unique_id=306306017]
+mesh = SubResource("BoxMesh_v3n37")
+surface_material_override/0 = SubResource("StandardMaterial3D_qmiwq")
+
+[node name="Crate2" type="RigidBody3D" parent="." unique_id=1329691240 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.66, 0.2, 2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_ow81m")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@148" type="CollisionShape3D" parent="Crate2" unique_id=1571923919]
+shape = SubResource("BoxShape3D_cbmnp")
+
+[node name="@MeshInstance3D@149" type="MeshInstance3D" parent="Crate2" unique_id=52249813]
+mesh = SubResource("BoxMesh_gt26q")
+surface_material_override/0 = SubResource("StandardMaterial3D_uj5ey")
+
+[node name="Crate3" type="RigidBody3D" parent="." unique_id=1221339312 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.29, 0.601, 2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_d681b")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@150" type="CollisionShape3D" parent="Crate3" unique_id=1585607575]
+shape = SubResource("BoxShape3D_ca5qb")
+
+[node name="@MeshInstance3D@151" type="MeshInstance3D" parent="Crate3" unique_id=1277967752]
+mesh = SubResource("BoxMesh_fcskn")
+surface_material_override/0 = SubResource("StandardMaterial3D_roqk3")
+
+[node name="Crate4" type="RigidBody3D" parent="." unique_id=229518214 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.87, 0.601, 2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_hppca")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@152" type="CollisionShape3D" parent="Crate4" unique_id=2121580616]
+shape = SubResource("BoxShape3D_7litv")
+
+[node name="@MeshInstance3D@153" type="MeshInstance3D" parent="Crate4" unique_id=1742821611]
+mesh = SubResource("BoxMesh_uf1on")
+surface_material_override/0 = SubResource("StandardMaterial3D_ays1k")
+
+[node name="Crate5" type="RigidBody3D" parent="." unique_id=330944162 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.08, 1.002, 2)
+collision_mask = 29
+mass = 4.0
+physics_material_override = SubResource("PhysicsMaterial_h2svt")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@154" type="CollisionShape3D" parent="Crate5" unique_id=1491586051]
+shape = SubResource("BoxShape3D_14mgl")
+
+[node name="@MeshInstance3D@155" type="MeshInstance3D" parent="Crate5" unique_id=286288978]
+mesh = SubResource("BoxMesh_xej6x")
+surface_material_override/0 = SubResource("StandardMaterial3D_lnrrm")
+
+[node name="HeavyBox" type="RigidBody3D" parent="." unique_id=1716916626 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0.35, 4)
+collision_mask = 29
+mass = 25.0
+physics_material_override = SubResource("PhysicsMaterial_s5n6d")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@156" type="CollisionShape3D" parent="HeavyBox" unique_id=152653590]
+shape = SubResource("BoxShape3D_tbu86")
+
+[node name="@MeshInstance3D@157" type="MeshInstance3D" parent="HeavyBox" unique_id=325352487]
+mesh = SubResource("BoxMesh_sdivr")
+surface_material_override/0 = SubResource("StandardMaterial3D_1mlge")
+
+[node name="Barrel0" type="RigidBody3D" parent="." unique_id=1616400777 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0.425, 4.5)
+collision_mask = 29
+mass = 12.0
+physics_material_override = SubResource("PhysicsMaterial_2qo3y")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@158" type="CollisionShape3D" parent="Barrel0" unique_id=978366053]
+shape = SubResource("CylinderShape3D_j6lu7")
+
+[node name="@MeshInstance3D@159" type="MeshInstance3D" parent="Barrel0" unique_id=382862558]
+mesh = SubResource("CylinderMesh_bugjv")
+surface_material_override/0 = SubResource("StandardMaterial3D_8xmql")
+
+[node name="Barrel1" type="RigidBody3D" parent="." unique_id=314923690 groups=["prop"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.8, 0.425, 4.5)
+collision_mask = 29
+mass = 12.0
+physics_material_override = SubResource("PhysicsMaterial_66v8j")
+contact_monitor = true
+max_contacts_reported = 4
+
+[node name="@CollisionShape3D@160" type="CollisionShape3D" parent="Barrel1" unique_id=851411948]
+shape = SubResource("CylinderShape3D_jl4x8")
+
+[node name="@MeshInstance3D@161" type="MeshInstance3D" parent="Barrel1" unique_id=1530581604]
+mesh = SubResource("CylinderMesh_2dnqq")
+surface_material_override/0 = SubResource("StandardMaterial3D_yhwwq")
+
+[node name="BalanceBeam" type="StaticBody3D" parent="." unique_id=1191866526]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11, 0.15, -2)
+collision_mask = 29
+
+[node name="@CollisionShape3D@162" type="CollisionShape3D" parent="BalanceBeam" unique_id=382791105]
+shape = SubResource("BoxShape3D_ti6md")
+
+[node name="@MeshInstance3D@163" type="MeshInstance3D" parent="BalanceBeam" unique_id=1168847170]
+mesh = SubResource("BoxMesh_4ackd")
+surface_material_override/0 = SubResource("StandardMaterial3D_xk8qo")
+
+[node name="Sign15" type="Label3D" parent="." unique_id=625340405]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11, 1.1, -2)
+pixel_size = 0.002
+billboard = 2
+text = "Balance beam"
+font_size = 96
+
+[node name="TunnelRoof" type="StaticBody3D" parent="." unique_id=484511705]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 0.65, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@164" type="CollisionShape3D" parent="TunnelRoof" unique_id=689180663]
+shape = SubResource("BoxShape3D_6dg5r")
+
+[node name="@MeshInstance3D@165" type="MeshInstance3D" parent="TunnelRoof" unique_id=292772888]
+mesh = SubResource("BoxMesh_bogif")
+surface_material_override/0 = SubResource("StandardMaterial3D_3yyoe")
+
+[node name="TunnelWallL" type="StaticBody3D" parent="." unique_id=404052796]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.15, 0.3, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@166" type="CollisionShape3D" parent="TunnelWallL" unique_id=453699373]
+shape = SubResource("BoxShape3D_shih6")
+
+[node name="@MeshInstance3D@167" type="MeshInstance3D" parent="TunnelWallL" unique_id=361002469]
+mesh = SubResource("BoxMesh_w0q3r")
+surface_material_override/0 = SubResource("StandardMaterial3D_0py7j")
+
+[node name="TunnelWallR" type="StaticBody3D" parent="." unique_id=785574073]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.85, 0.3, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@168" type="CollisionShape3D" parent="TunnelWallR" unique_id=2125261682]
+shape = SubResource("BoxShape3D_2wlpg")
+
+[node name="@MeshInstance3D@169" type="MeshInstance3D" parent="TunnelWallR" unique_id=1030319442]
+mesh = SubResource("BoxMesh_ihpiu")
+surface_material_override/0 = SubResource("StandardMaterial3D_u5jgj")
+
+[node name="Sign16" type="Label3D" parent="." unique_id=1183749497]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 1.2, 5.3)
+pixel_size = 0.002
+billboard = 2
+text = "Crawl tunnel (0.6 m)"
+font_size = 96
+
+[node name="DuckPostA" type="StaticBody3D" parent="." unique_id=451939845]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.65, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@170" type="CollisionShape3D" parent="DuckPostA" unique_id=1410126989]
+shape = SubResource("CylinderShape3D_cdc2f")
+
+[node name="@MeshInstance3D@171" type="MeshInstance3D" parent="DuckPostA" unique_id=999944442]
+mesh = SubResource("CylinderMesh_oao1s")
+surface_material_override/0 = SubResource("StandardMaterial3D_5khef")
+
+[node name="DuckPostB" type="StaticBody3D" parent="." unique_id=1163601987]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.6, 0.65, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@172" type="CollisionShape3D" parent="DuckPostB" unique_id=1231475005]
+shape = SubResource("CylinderShape3D_07qhc")
+
+[node name="@MeshInstance3D@173" type="MeshInstance3D" parent="DuckPostB" unique_id=1925122326]
+mesh = SubResource("CylinderMesh_j8vqk")
+surface_material_override/0 = SubResource("StandardMaterial3D_w6u8e")
+
+[node name="DuckBar" type="StaticBody3D" parent="." unique_id=1368510343]
+transform = Transform3D(0, 1, 0, 0, 0, -1, -1, 0, 0, 1.8, 1.25, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@174" type="CollisionShape3D" parent="DuckBar" unique_id=1206412959]
+shape = SubResource("CylinderShape3D_0pji4")
+
+[node name="@MeshInstance3D@175" type="MeshInstance3D" parent="DuckBar" unique_id=98107730]
+mesh = SubResource("CylinderMesh_m3cdy")
+surface_material_override/0 = SubResource("StandardMaterial3D_ko1lh")
+
+[node name="Sign17" type="Label3D" parent="." unique_id=1380073714]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 1.8, 7)
+pixel_size = 0.002
+billboard = 2
+text = "Duck under (1.2 m)"
+font_size = 96
+
+[node name="DoorL" type="StaticBody3D" parent="." unique_id=1049529485]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.1, 1.05, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@176" type="CollisionShape3D" parent="DoorL" unique_id=1092647047]
+shape = SubResource("BoxShape3D_1ndtr")
+
+[node name="@MeshInstance3D@177" type="MeshInstance3D" parent="DoorL" unique_id=1678368414]
+mesh = SubResource("BoxMesh_aichm")
+surface_material_override/0 = SubResource("StandardMaterial3D_1uh00")
+
+[node name="DoorR" type="StaticBody3D" parent="." unique_id=1309110082]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.1, 1.05, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@178" type="CollisionShape3D" parent="DoorR" unique_id=1790632683]
+shape = SubResource("BoxShape3D_3xc6d")
+
+[node name="@MeshInstance3D@179" type="MeshInstance3D" parent="DoorR" unique_id=577065325]
+mesh = SubResource("BoxMesh_1fk52")
+surface_material_override/0 = SubResource("StandardMaterial3D_k1ltc")
+
+[node name="DoorTop" type="StaticBody3D" parent="." unique_id=1051364759]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.6, 2, 7)
+collision_mask = 29
+
+[node name="@CollisionShape3D@180" type="CollisionShape3D" parent="DoorTop" unique_id=1660183461]
+shape = SubResource("BoxShape3D_2cf2k")
+
+[node name="@MeshInstance3D@181" type="MeshInstance3D" parent="DoorTop" unique_id=2054482188]
+mesh = SubResource("BoxMesh_a6am2")
+surface_material_override/0 = SubResource("StandardMaterial3D_3d2bp")
+
+[node name="Sign18" type="Label3D" parent="." unique_id=1256687055]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.6, 2.5, 7)
+pixel_size = 0.002
+billboard = 2
+text = "Doorway"
+font_size = 96
diff --git a/scripts/Crag.cs b/scripts/Crag.cs
index f371514..857abc5 100644
--- a/scripts/Crag.cs
+++ b/scripts/Crag.cs
@@ -12,11 +12,20 @@ using System.Collections.Generic;
// 6. a 0.9 m chimney with holds on both walls up the third tier;
// 7. the summit (26 m) with throwable props. Way down: aim at the "Crag" teleport marker at the
// base (or jump — no fall damage).
-// The cliff faces south (+Z) toward spawn. Every route point is recorded in Route so crag_spike
-// can check reach; route bodies in RoutePieces so it can check nothing intersects them.
+// The cliff faces south (+Z) toward spawn. EDITOR-BUILT: this is the root of scenes/maps/crag.tscn
+// and Rebuild() generates everything into that scene (MapScene: inspector button, or
+// tools/rebuild_maps.tscn headless); the game loads the saved scene. The route is saved too: every
+// route point is a Marker3D under "Route" (metadata kind/label, in climbing order), route bodies are in
+// group "crag_route" and rock in "crag_mass" — Route/RoutePieces/MassPieces are read back from the
+// saved nodes on _Ready, so crag_spike checks the scene as saved (and as hand-edited).
+[Tool]
public partial class Crag : Node3D
{
+ [ExportToolButton("Rebuild (replaces all children)")]
+ public Callable RebuildButton => Callable.From(RebuildInEditor);
+
public enum Step { Stand, Hold }
+ public const string RouteNode = "Route", RouteGroup = "crag_route", MassGroup = "crag_mass";
public readonly List<(Step Kind, Vector3 Point, string Name)> Route = new();
public readonly List<(CollisionObject3D Body, Aabb Box)> RoutePieces = new();
public readonly List<(CollisionObject3D Body, Aabb Box)> MassPieces = new();
@@ -37,25 +46,76 @@ public partial class Crag : Node3D
public override void _Ready()
{
+ if (Engine.IsEditorHint())
+ return;
+ MapScene.CollectProps(this, _dynamic);
+ ReadLayout();
+ }
+
+ public void Reset() => MapScene.Reset(_dynamic);
+
+ private void RebuildInEditor()
+ {
+ if (!MapScene.CanRebuildInEditor(this))
+ return;
+ Rebuild();
+ MapScene.MarkUnsaved();
+ }
+
+ // Replaces every child with the generated layout, owned by this map (saved with its scene).
+ public void Rebuild()
+ {
+ MapScene.Clear(this);
+ _rng.Seed = 26; // same rubble/talus every rebuild
+ _route = new Node3D { Name = RouteNode };
+ AddChild(_route);
BuildMass();
BuildRoute();
BuildBase();
BuildSummitProps();
+ MapScene.Adopt(this);
+ ReadLayout();
}
- public void Reset()
+ // Route points and piece bounds from the (saved) nodes.
+ public void ReadLayout()
{
- foreach (var (body, start) in _dynamic)
+ Route.Clear();
+ RoutePieces.Clear();
+ MassPieces.Clear();
+ if (GetNodeOrNull(RouteNode) is Node route)
+ foreach (Node child in route.GetChildren())
+ if (child is Marker3D m)
+ Route.Add(((Step)(int)m.GetMeta("kind"), m.GlobalPosition, (string)m.GetMeta("label")));
+ foreach (Node child in GetChildren())
{
- if (!IsInstanceValid(body))
+ if (child is not CollisionObject3D body)
continue;
- body.GlobalTransform = start;
- body.LinearVelocity = Vector3.Zero;
- body.AngularVelocity = Vector3.Zero;
- body.ResetPhysicsInterpolation();
+ if (body.IsInGroup(RouteGroup))
+ RoutePieces.Add((body, Bounds(body)));
+ else if (body.IsInGroup(MassGroup))
+ MassPieces.Add((body, Bounds(body)));
}
}
+ // World bounds of a box or a cylinder piece (a cylinder's ends are flat: radius across its axis only).
+ private static Aabb Bounds(CollisionObject3D body)
+ {
+ CollisionShape3D cs = body.GetChildOrNull(0);
+ Transform3D t = body.GlobalTransform * cs.Transform;
+ if (cs.Shape is CylinderShape3D cyl)
+ {
+ Vector3 from = t * new Vector3(0f, -cyl.Height * 0.5f, 0f), to = t * new Vector3(0f, cyl.Height * 0.5f, 0f);
+ Vector3 d = (to - from).Normalized(), r = new(
+ cyl.Radius * Mathf.Sqrt(Mathf.Max(0f, 1f - d.X * d.X)), cyl.Radius * Mathf.Sqrt(Mathf.Max(0f, 1f - d.Y * d.Y)), cyl.Radius * Mathf.Sqrt(Mathf.Max(0f, 1f - d.Z * d.Z)));
+ return new Aabb(from - r, Vector3.Zero).Expand(from + r).Expand(to - r).Expand(to + r);
+ }
+ Vector3 size = ((BoxShape3D)cs.Shape).Size;
+ return t * new Aabb(-size * 0.5f, size);
+ }
+
+ private Node3D _route;
+
// ---------------------------------------------------------------- the rock
private void BuildMass()
@@ -241,8 +301,9 @@ public partial class Crag : Node3D
// The way down: a teleport marker at the base (aim at it from the summit).
Node3D marker = GD.Load("res://scenes/teleport_marker.tscn").Instantiate();
marker.Set("MarkerLabel", "Crag");
+ marker.Name = "CragMarker";
marker.Position = new Vector3(1.5f, 0f, -9.5f);
- AddChild(marker);
+ AddChild(marker, true);
}
private void BuildSummitProps()
@@ -258,45 +319,47 @@ public partial class Crag : Node3D
// ---------------------------------------------------------------- builders
- private void AddStep(Step kind, Vector3 point, string name) => Route.Add((kind, point, name));
+ // A route point: an editor-visible Marker3D under "Route", in climbing order.
+ private void AddStep(Step kind, Vector3 point, string name)
+ {
+ Marker3D m = new() { Name = kind == Step.Hold ? "Hold" : "Stand", Position = point };
+ m.SetMeta("kind", (int)kind);
+ m.SetMeta("label", name);
+ _route.AddChild(m, true);
+ }
private StaticBody3D Mass(string name, Vector3 size, Vector3 center, Color color, Basis? basis = null)
{
StaticBody3D b = Block(name, size, center, color, true, basis);
- MassPieces.Add((b, BoxAabb(size, b.Transform)));
+ b.AddToGroup(MassGroup, true);
return b;
}
private StaticBody3D RouteBlock(string name, Vector3 size, Vector3 center, Color color, bool castShadow = true)
{
StaticBody3D b = Block(name, size, center, color, castShadow);
- RoutePieces.Add((b, BoxAabb(size, b.Transform)));
+ b.AddToGroup(RouteGroup, true);
return b;
}
private StaticBody3D RouteBar(string name, Vector3 from, Vector3 to, float radius, Color color)
{
StaticBody3D b = Bar(name, from, to, radius, color);
- // Bounds of the cylinder: radius across the axis only (the ends are flat).
- Vector3 d = (to - from).Normalized(), r = new Vector3(
- radius * Mathf.Sqrt(Mathf.Max(0f, 1f - d.X * d.X)), radius * Mathf.Sqrt(Mathf.Max(0f, 1f - d.Y * d.Y)), radius * Mathf.Sqrt(Mathf.Max(0f, 1f - d.Z * d.Z)));
- RoutePieces.Add((b, new Aabb(from - r, Vector3.Zero).Expand(from + r).Expand(to - r).Expand(to + r)));
+ b.AddToGroup(RouteGroup, true);
return b;
}
- private static Aabb BoxAabb(Vector3 size, Transform3D t) => t * new Aabb(-size * 0.5f, size);
-
private StaticBody3D Block(string name, Vector3 size, Vector3 center, Color color, bool castShadow, Basis? basis = null, bool grab = true)
{
StaticBody3D body = new() { Name = name, CollisionLayer = WorldLayer, CollisionMask = WorldMask, Transform = new Transform3D(basis ?? Basis.Identity, center) };
if (!grab)
- body.AddToGroup(PropGrabber.NoGrabGroup);
+ body.AddToGroup(PropGrabber.NoGrabGroup, true);
body.AddChild(new CollisionShape3D { Shape = new BoxShape3D { Size = size } });
MeshInstance3D mesh = Mesh(new BoxMesh { Size = size }, color);
if (!castShadow)
mesh.CastShadow = GeometryInstance3D.ShadowCastingSetting.Off;
body.AddChild(mesh);
- AddChild(body);
+ AddChild(body, true);
return body;
}
@@ -309,7 +372,7 @@ public partial class Crag : Node3D
StaticBody3D body = new() { Name = name, CollisionLayer = WorldLayer, CollisionMask = WorldMask, Transform = new Transform3D(new Basis(x, y, x.Cross(y)), (from + to) * 0.5f) };
body.AddChild(new CollisionShape3D { Shape = new CylinderShape3D { Radius = radius, Height = len } });
body.AddChild(Mesh(new CylinderMesh { TopRadius = radius, BottomRadius = radius, Height = len, RadialSegments = 12 }, color));
- AddChild(body);
+ AddChild(body, true);
return body;
}
@@ -325,11 +388,10 @@ public partial class Crag : Node3D
MaxContactsReported = 4,
PhysicsMaterialOverride = new PhysicsMaterial { Friction = 0.8f, Bounce = 0.05f },
};
- body.AddToGroup("prop");
+ body.AddToGroup(MapScene.PropGroup, true);
body.AddChild(new CollisionShape3D { Shape = shape });
body.AddChild(Mesh(mesh, color));
- AddChild(body);
- _dynamic.Add((body, body.GlobalTransform));
+ AddChild(body, true);
return body;
}
@@ -347,12 +409,13 @@ public partial class Crag : Node3D
{
AddChild(new Label3D
{
+ Name = "Sign",
Text = text,
FontSize = 96,
PixelSize = 0.002f * scale,
OutlineSize = 12,
Billboard = BaseMaterial3D.BillboardModeEnum.FixedY,
Position = at,
- });
+ }, true);
}
}
diff --git a/scripts/CragSpike.cs b/scripts/CragSpike.cs
index b658b4f..311b619 100644
--- a/scripts/CragSpike.cs
+++ b/scripts/CragSpike.cs
@@ -1,7 +1,8 @@
using Godot;
using System.Collections.Generic;
-// Regression for the crag (no player): the route is climbable on paper — consecutive route points
+// Regression for the crag (no player), checked on the SAVED scenes/maps/crag.tscn (route = its
+// Route markers; rebuild with tools/rebuild_maps.tscn): the route is climbable on paper — consecutive route points
// within human reach, every point in free space, route pieces not buried in each other or the
// rock — the summit is high enough, and it's in plain view from spawn. Prints "CRAG: overall PASS".
public partial class CragSpike : Node3D
@@ -23,8 +24,9 @@ public partial class CragSpike : Node3D
floor.AddToGroup(PropGrabber.NoGrabGroup);
floor.AddChild(new CollisionShape3D { Shape = new BoxShape3D { Size = new Vector3(80, 0.1f, 80) }, Position = new Vector3(0, -0.05f, 0) });
AddChild(floor);
- AddChild(new Playground());
- _crag = new Crag();
+ // The SAVED scenes (as the game loads them, hand edits included), not a fresh rebuild.
+ AddChild(GD.Load("res://scenes/maps/playground.tscn").Instantiate());
+ _crag = GD.Load("res://scenes/maps/crag.tscn").Instantiate();
AddChild(_crag);
}
diff --git a/scripts/MapScene.cs b/scripts/MapScene.cs
new file mode 100644
index 0000000..7fe8cdd
--- /dev/null
+++ b/scripts/MapScene.cs
@@ -0,0 +1,80 @@
+using Godot;
+using System.Collections.Generic;
+
+// Shared plumbing for the editor-built maps (Playground, Crag). Each map is the ROOT of its own scene
+// (scenes/maps/*.tscn) with a [Tool] script whose Rebuild() regenerates every child from code and
+// gives it to the scene (Owner = the map root) so it is saved into the .tscn like hand-made nodes.
+// The game never regenerates: it loads what was saved, so edits made in the editor stick (until the
+// next Rebuild, which replaces ALL children). Rebuild from the inspector button with the map scene
+// open, or headless for agents: godot-mono --headless --path . tools/rebuild_maps.tscn
+public static class MapScene
+{
+ public const string PropGroup = "prop";
+
+ // The inspector button only works with the map scene itself open (nodes owned by an instanced
+ // sub-scene's root aren't saved into the outer scene).
+ public static bool CanRebuildInEditor(Node map)
+ {
+ if (map.GetTree()?.EditedSceneRoot == map)
+ return true;
+ GD.PushWarning($"{map.Name}: open its own scene (scenes/maps/) to rebuild it — it's instanced here.");
+ return false;
+ }
+
+ public static void Clear(Node map)
+ {
+ foreach (Node child in map.GetChildren())
+ {
+ map.RemoveChild(child);
+ child.Free();
+ }
+ }
+
+ // Every generated node belongs to the map scene; children of instanced sub-scenes (e.g. a
+ // teleport marker) keep their own owner.
+ public static void Adopt(Node map)
+ {
+ foreach (Node child in map.GetChildren())
+ Adopt(map, child);
+ }
+
+ private static void Adopt(Node root, Node node)
+ {
+ if (node.Owner == null)
+ node.Owner = root;
+ if (node.SceneFilePath != "")
+ return;
+ foreach (Node child in node.GetChildren())
+ Adopt(root, child);
+ }
+
+ public static void MarkUnsaved()
+ {
+#if TOOLS
+ if (Engine.IsEditorHint())
+ EditorInterface.Singleton.MarkSceneAsUnsaved();
+#endif
+ }
+
+ // Runtime: the dynamic props (group "prop") and where they start, for Reset().
+ public static void CollectProps(Node map, List<(RigidBody3D Body, Transform3D Start)> props)
+ {
+ props.Clear();
+ foreach (Node child in map.GetChildren())
+ if (child is RigidBody3D body && body.IsInGroup(PropGroup))
+ props.Add((body, body.GlobalTransform));
+ }
+
+ public static void Reset(List<(RigidBody3D Body, Transform3D Start)> props)
+ {
+ foreach (var (body, start) in props)
+ {
+ if (!GodotObject.IsInstanceValid(body))
+ continue;
+ body.GlobalTransform = start;
+ body.LinearVelocity = Vector3.Zero;
+ body.AngularVelocity = Vector3.Zero;
+ body.ResetPhysicsInterpolation();
+ }
+ }
+}
diff --git a/scripts/MapScene.cs.uid b/scripts/MapScene.cs.uid
new file mode 100644
index 0000000..a69e5f8
--- /dev/null
+++ b/scripts/MapScene.cs.uid
@@ -0,0 +1 @@
+uid://d0oo5qx6v57bs
diff --git a/scripts/Playground.cs b/scripts/Playground.cs
index b689705..7eac49b 100644
--- a/scripts/Playground.cs
+++ b/scripts/Playground.cs
@@ -1,7 +1,9 @@
using Godot;
using System.Collections.Generic;
-// The body-physics sandbox (Nimso-sandbox style), built in code around the spawn/table area:
+// The body-physics sandbox (Nimso-sandbox style) around the spawn/table area. EDITOR-BUILT: this is the
+// root of scenes/maps/playground.tscn and Rebuild() generates the pieces below into that scene
+// (MapScene: inspector button, or tools/rebuild_maps.tscn headless); the game loads the saved scene.
// EAST — mantling ledges (0.3 … 1.5 m), a 1 m platform with stairs, a walkable 18° ramp and a
// too-steep 40° one, a climbing wall with holds onto a 2.4 m top, a pull-up bar, monkey bars.
// WEST — physics toys: a plank bridge on two blocks (walk on it / knock it off), loose planks,
@@ -10,8 +12,12 @@ using System.Collections.Generic;
// SOUTH — a crawl tunnel (0.6 m clearance), a duck-under bar (1.2 m) and a doorway.
// Static pieces are world (layer 1) and grabbable for climbing (PropGrabber grabs any static body
// not in "no_grab"); dynamic pieces are "prop"s (grab/push) and come back with Reset().
+[Tool]
public partial class Playground : Node3D
{
+ [ExportToolButton("Rebuild (replaces all children)")]
+ public Callable RebuildButton => Callable.From(RebuildInEditor);
+
private readonly List<(RigidBody3D Body, Transform3D Start)> _dynamic = new();
private const uint WorldLayer = 1, WorldMask = 0b11101, PropMask = 0b11101;
@@ -21,22 +27,28 @@ public partial class Playground : Node3D
public override void _Ready()
{
+ if (!Engine.IsEditorHint())
+ MapScene.CollectProps(this, _dynamic);
+ }
+
+ public void Reset() => MapScene.Reset(_dynamic);
+
+ private void RebuildInEditor()
+ {
+ if (!MapScene.CanRebuildInEditor(this))
+ return;
+ Rebuild();
+ MapScene.MarkUnsaved();
+ }
+
+ // Replaces every child with the generated layout, owned by this map (saved with its scene).
+ public void Rebuild()
+ {
+ MapScene.Clear(this);
BuildEast();
BuildWest();
BuildSouth();
- }
-
- public void Reset()
- {
- foreach (var (body, start) in _dynamic)
- {
- if (!IsInstanceValid(body))
- continue;
- body.GlobalTransform = start;
- body.LinearVelocity = Vector3.Zero;
- body.AngularVelocity = Vector3.Zero;
- body.ResetPhysicsInterpolation();
- }
+ MapScene.Adopt(this);
}
// ---------------------------------------------------------------- builders
@@ -46,7 +58,7 @@ public partial class Playground : Node3D
StaticBody3D body = new() { Name = name, CollisionLayer = WorldLayer, CollisionMask = WorldMask, Transform = new Transform3D(basis ?? Basis.Identity, center) };
body.AddChild(new CollisionShape3D { Shape = new BoxShape3D { Size = size } });
body.AddChild(Mesh(new BoxMesh { Size = size }, color));
- AddChild(body);
+ AddChild(body, true);
return body;
}
@@ -59,7 +71,7 @@ public partial class Playground : Node3D
StaticBody3D body = new() { Name = name, CollisionLayer = WorldLayer, CollisionMask = WorldMask, Transform = new Transform3D(new Basis(x, y, x.Cross(y)), (from + to) * 0.5f) };
body.AddChild(new CollisionShape3D { Shape = new CylinderShape3D { Radius = radius, Height = len } });
body.AddChild(Mesh(new CylinderMesh { TopRadius = radius, BottomRadius = radius, Height = len, RadialSegments = 12 }, color));
- AddChild(body);
+ AddChild(body, true);
return body;
}
@@ -75,11 +87,10 @@ public partial class Playground : Node3D
MaxContactsReported = 4,
PhysicsMaterialOverride = new PhysicsMaterial { Friction = friction, Bounce = 0.05f },
};
- body.AddToGroup("prop");
+ body.AddToGroup(MapScene.PropGroup, true);
body.AddChild(new CollisionShape3D { Shape = shape });
body.AddChild(Mesh(mesh, color));
- AddChild(body);
- _dynamic.Add((body, body.GlobalTransform));
+ AddChild(body, true);
return body;
}
@@ -97,13 +108,14 @@ public partial class Playground : Node3D
{
AddChild(new Label3D
{
+ Name = "Sign",
Text = text,
FontSize = 96,
PixelSize = 0.002f,
OutlineSize = 12,
Billboard = BaseMaterial3D.BillboardModeEnum.FixedY,
Position = at,
- });
+ }, true);
}
// ---------------------------------------------------------------- zones
@@ -183,13 +195,16 @@ public partial class Playground : Node3D
// Seesaw: a plank hinged on a pivot block.
Block("SeesawPivot", new Vector3(0.3f, 0.45f, 0.5f), new Vector3(-8.5f, 0.225f, -1.5f), Metal);
RigidBody3D seesaw = BoxProp("Seesaw", new Vector3(3.2f, 0.06f, 0.45f), 12f, new Vector3(-8.5f, 0.48f, -1.5f), DarkWood);
+ // Joint paths resolve relative to the joint (a sibling here) and are saved that way; set
+ // before AddChild so the joint never exists without its bodies.
HingeJoint3D pivot = new()
{
+ Name = "SeesawHinge",
Transform = new Transform3D(new Basis(Vector3.Right, Vector3.Up, Vector3.Back), new Vector3(-8.5f, 0.48f, -1.5f)),
- NodeA = GetNode("SeesawPivot").GetPath(), // absolute: joint paths resolve relative to the joint
- NodeB = seesaw.GetPath(),
+ NodeA = $"../{GetNode("SeesawPivot").Name}",
+ NodeB = $"../{seesaw.Name}",
};
- AddChild(pivot);
+ AddChild(pivot, true);
Sign("Seesaw", new Vector3(-8.5f, 1.3f, -1.5f));
// Swing board: a 10 kg board hinged at its top edge from a 2.4 m beam — grab it and hang.
@@ -199,11 +214,12 @@ public partial class Playground : Node3D
RigidBody3D board = BoxProp("SwingBoard", new Vector3(1.2f, 1.2f, 0.05f), 10f, new Vector3(-6f, 1.75f, 1.5f), Wood);
HingeJoint3D swing = new()
{
+ Name = "SwingHinge",
Transform = new Transform3D(new Basis(Vector3.Back, Vector3.Up, Vector3.Left), new Vector3(-6f, 2.35f, 1.5f)),
- NodeA = beam.GetPath(),
- NodeB = board.GetPath(),
+ NodeA = $"../{beam.Name}",
+ NodeB = $"../{board.Name}",
};
- AddChild(swing);
+ AddChild(swing, true);
Sign("Hanging board", new Vector3(-6f, 2.9f, 1.5f));
// Crate pyramid (4 kg each), a heavy 25 kg box, barrels.
diff --git a/scripts/RagdollSpike.cs b/scripts/RagdollSpike.cs
index 7ec3a7b..ca31e13 100644
--- a/scripts/RagdollSpike.cs
+++ b/scripts/RagdollSpike.cs
@@ -1128,7 +1128,8 @@ public partial class RagdollSpike : Node3D
private void SetupPlayground()
{
Rest();
- _playground = new Playground { Position = new Vector3(0f, 0f, 40f) }; // far from the player
+ _playground = GD.Load("res://scenes/maps/playground.tscn").Instantiate(); // the saved scene
+ _playground.Position = new Vector3(0f, 0f, 40f); // far from the player
_stage.AddChild(_playground);
}
diff --git a/tools/MapDump.cs b/tools/MapDump.cs
new file mode 100644
index 0000000..936473f
--- /dev/null
+++ b/tools/MapDump.cs
@@ -0,0 +1,62 @@
+using Godot;
+using System.Collections.Generic;
+using System.Linq;
+
+// Dumps the map layout (type, transform, shape/mesh size, groups) sorted, for before/after comparison.
+// godot-mono --headless --path . tools/map_dump.tscn -- out=
+public partial class MapDump : Node3D
+{
+ private int _frame;
+
+ public override void _Ready()
+ {
+ foreach (string path in RebuildMaps.Maps)
+ AddChild(GD.Load(path).Instantiate());
+ }
+
+ public override void _Process(double delta)
+ {
+ if (++_frame < 3)
+ return;
+ string outPath = "/tmp/claude-1000/maps/dump.txt";
+ foreach (string a in OS.GetCmdlineUserArgs())
+ if (a.StartsWith("out="))
+ outPath = a[4..];
+ var lines = new List();
+ foreach (Node map in GetChildren())
+ Walk(map, map.GetType().Name, lines);
+ lines.Sort(System.StringComparer.Ordinal);
+ System.IO.File.WriteAllLines(outPath, lines);
+ GD.Print($"MAPDUMP: {lines.Count} nodes → {outPath}");
+ GetTree().Quit();
+ }
+
+ private static string R(Vector3 v) => $"({v.X:F3},{v.Y:F3},{v.Z:F3})";
+
+ private void Walk(Node n, string map, List lines)
+ {
+ foreach (Node ch in n.GetChildren())
+ {
+ string info = ch.GetClass();
+ if (ch is Node3D n3)
+ {
+ Transform3D t = n3.GlobalTransform;
+ info += $" o{R(t.Origin)} x{R(t.Basis.X)} y{R(t.Basis.Y)}";
+ }
+ if (ch is CollisionShape3D cs && cs.Shape is BoxShape3D bs) info += $" box{R(bs.Size)}";
+ if (ch is CollisionShape3D cc && cc.Shape is CylinderShape3D cy) info += $" cyl{cy.Radius:F3}/{cy.Height:F3}";
+ if (ch is CollisionShape3D cp && cp.Shape is SphereShape3D sp) info += $" sph{sp.Radius:F3}";
+ if (ch is MeshInstance3D mi && mi.GetSurfaceOverrideMaterial(0) is StandardMaterial3D m) info += $" col{m.AlbedoColor.ToHtml()} sh{(int)mi.CastShadow}";
+ if (ch is Label3D l) info += $" text[{l.Text}] px{l.PixelSize:F4}";
+ if (ch is CollisionObject3D co) info += $" L{co.CollisionLayer}/{co.CollisionMask}";
+ if (ch is RigidBody3D rb) info += $" m{rb.Mass:F2} f{rb.PhysicsMaterialOverride?.Friction:F2}";
+ var groups = ch.GetGroups().Select(g => g.ToString()).Where(g => !g.StartsWith("_")).OrderBy(g => g);
+ info += " g[" + string.Join(",", groups) + "]";
+ if (ch is Joint3D j) info += $" joint {j.GetNodeOrNull(j.NodeA)?.GetClass()}@{R((j.GetNodeOrNull(j.NodeA) as Node3D)?.GlobalPosition ?? Vector3.Zero)}-{j.GetNodeOrNull(j.NodeB)?.GetClass()}@{R((j.GetNodeOrNull(j.NodeB) as Node3D)?.GlobalPosition ?? Vector3.Zero)}";
+ if (ch.GetType().Name == "TeleportMarker" || ch.SceneFilePath != "") info += $" scene[{ch.SceneFilePath}] label[{ch.Get("MarkerLabel")}]";
+ lines.Add($"{map}: {info}");
+ if (ch.SceneFilePath == "")
+ Walk(ch, map, lines);
+ }
+ }
+}
diff --git a/tools/MapDump.cs.uid b/tools/MapDump.cs.uid
new file mode 100644
index 0000000..d22ea0e
--- /dev/null
+++ b/tools/MapDump.cs.uid
@@ -0,0 +1 @@
+uid://bt87gcewn6ihe
diff --git a/tools/PlaygroundShots.cs b/tools/PlaygroundShots.cs
index d6f2923..a364555 100644
--- a/tools/PlaygroundShots.cs
+++ b/tools/PlaygroundShots.cs
@@ -31,8 +31,8 @@ public partial class PlaygroundShots : Node3D
floor.AddChild(new CollisionShape3D { Shape = new BoxShape3D { Size = new Vector3(80, 0.1f, 80) }, Position = new Vector3(0, -0.05f, 0) });
floor.AddChild(new MeshInstance3D { Mesh = new PlaneMesh { Size = new Vector2(80, 80) } });
AddChild(floor);
- AddChild(new Playground());
- AddChild(new Crag());
+ AddChild(GD.Load("res://scenes/maps/playground.tscn").Instantiate()); // the saved maps
+ AddChild(GD.Load("res://scenes/maps/crag.tscn").Instantiate());
_cam = new Camera3D { Current = true };
AddChild(_cam);
SetView();
diff --git a/tools/RebuildMaps.cs b/tools/RebuildMaps.cs
new file mode 100644
index 0000000..713061f
--- /dev/null
+++ b/tools/RebuildMaps.cs
@@ -0,0 +1,68 @@
+using Godot;
+
+// Headless map rebuild for agents (same as pressing each map's "Rebuild" button in the editor and
+// saving): loads each map scene, regenerates its children from code and saves it back.
+// godot-mono --headless --path . tools/rebuild_maps.tscn [-- only=playground|crag]
+// Prints "MAPS: rebuilt ( nodes)" per map and "MAPS: done". Overwrites hand edits in those
+// scenes — that's what Rebuild means.
+public partial class RebuildMaps : Node
+{
+ public static readonly string[] Maps = { "res://scenes/maps/playground.tscn", "res://scenes/maps/crag.tscn" };
+
+ public override void _Ready()
+ {
+ string only = null;
+ foreach (string a in OS.GetCmdlineUserArgs())
+ if (a.StartsWith("only="))
+ only = a[5..];
+ bool ok = true;
+ foreach (string path in Maps)
+ {
+ if (only != null && !path.Contains(only))
+ continue;
+ ok &= RebuildOne(path);
+ }
+ GD.Print(ok ? "MAPS: done" : "MAPS: FAILED");
+ GetTree().Quit(ok ? 0 : 1);
+ }
+
+ private bool RebuildOne(string path)
+ {
+ Node map = ResourceLoader.Load(path, null, ResourceLoader.CacheMode.Ignore).Instantiate();
+ AddChild(map); // in the tree, so joint paths and globals resolve like in the editor
+ switch (map)
+ {
+ case Playground p:
+ p.Rebuild();
+ break;
+ case Crag c:
+ c.Rebuild();
+ break;
+ default:
+ GD.PushError($"MAPS: {path} root is not a map ({map.GetType().Name})");
+ return false;
+ }
+ RemoveChild(map);
+ PackedScene packed = new();
+ Error err = packed.Pack(map);
+ if (err == Error.Ok)
+ err = ResourceSaver.Save(packed, path);
+ int count = CountOwned(map, map);
+ map.Free();
+ if (err != Error.Ok)
+ {
+ GD.PushError($"MAPS: saving {path} failed: {err}");
+ return false;
+ }
+ GD.Print($"MAPS: rebuilt {path} ({count} nodes)");
+ return true;
+ }
+
+ private static int CountOwned(Node root, Node n)
+ {
+ int c = 0;
+ foreach (Node child in n.GetChildren())
+ c += (child.Owner == root ? 1 : 0) + CountOwned(root, child);
+ return c;
+ }
+}
diff --git a/tools/RebuildMaps.cs.uid b/tools/RebuildMaps.cs.uid
new file mode 100644
index 0000000..4df9e38
--- /dev/null
+++ b/tools/RebuildMaps.cs.uid
@@ -0,0 +1 @@
+uid://cd3m3hyr27lpy
diff --git a/tools/map_dump.tscn b/tools/map_dump.tscn
new file mode 100644
index 0000000..049c6a8
--- /dev/null
+++ b/tools/map_dump.tscn
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=3]
+
+[ext_resource type="Script" path="res://tools/MapDump.cs" id="1"]
+
+[node name="MapDump" type="Node3D"]
+script = ExtResource("1")
diff --git a/tools/rebuild_maps.tscn b/tools/rebuild_maps.tscn
new file mode 100644
index 0000000..b6d8b16
--- /dev/null
+++ b/tools/rebuild_maps.tscn
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=3]
+
+[ext_resource type="Script" path="res://tools/RebuildMaps.cs" id="1"]
+
+[node name="RebuildMaps" type="Node"]
+script = ExtResource("1")