From cbaf41e75b506143ff148f96c92feba5aea16f5a Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:05:18 +0000
Subject: [PATCH 1/9] Update devops/docker.mdx
Generated-By: mintlify-agent
---
devops/docker.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/devops/docker.mdx b/devops/docker.mdx
index c30061fa..1296f821 100644
--- a/devops/docker.mdx
+++ b/devops/docker.mdx
@@ -22,7 +22,7 @@ Hyperscape uses Docker for local development services:
## CDN Container (Development Only)
-The local CDN serves assets during development. In production, assets are served from Cloudflare R2.
+The local CDN serves assets during development. In production, assets are served from Cloudflare R2 with CORS headers enabled for cross-origin loading.
### Start CDN
From 0e018b48e4bb1fa1103d76450afab99e723b544a Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:05:27 +0000
Subject: [PATCH 2/9] Update devops/docker.mdx
Generated-By: mintlify-agent
---
devops/docker.mdx | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/devops/docker.mdx b/devops/docker.mdx
index 1296f821..e55f0ec3 100644
--- a/devops/docker.mdx
+++ b/devops/docker.mdx
@@ -100,6 +100,10 @@ bun run assets:deploy
bun run cdn:verify
```
+
+The assets repository is deployed to Railway as a static file server with Caddy, which automatically adds CORS headers (`Access-Control-Allow-Origin: *`) to enable cross-origin asset loading from the game client.
+
+
The `ensure-assets.mjs` script detects whether you have full assets (models, audio, textures) or just manifests:
```typescript
From df191193802880524e3be033ee7b361f34e87385 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:05:50 +0000
Subject: [PATCH 3/9] Update wiki/data/overview.mdx
Generated-By: mintlify-agent
---
wiki/data/overview.mdx | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/wiki/data/overview.mdx b/wiki/data/overview.mdx
index 6d8ae1db..62522950 100644
--- a/wiki/data/overview.mdx
+++ b/wiki/data/overview.mdx
@@ -179,9 +179,25 @@ Each NPC has these properties (from `types/entities/npc-mob-types.ts`):
**Vegetation**:
```
/assets/trees/
-└── mushroom.glb → Giant mushroom (new)
+├── mushroom.glb → Giant mushroom
+├── bamboo_01.glb - bamboo_04.glb (+ LOD variants) → Bamboo trees
+├── birch_01.glb - birch_05.glb (+ LOD variants) → Birch trees with white bark
+├── cactus01.glb - cactus08.glb (+ LOD variants) → Desert cacti
+├── chinaPine_01.glb - chinaPine_04.glb (+ LOD) → China pine trees
+├── coconut_01.glb - coconut_05.glb (+ LOD) → Coconut palms
+├── dead_01.glb - dead_06.glb (+ LOD variants) → Dead/withered trees
+├── fir_01.glb - fir_04.glb (+ LOD variants) → Fir trees
+├── knotwood_01.glb - knotwood_04.glb (+ LOD) → Knotwood trees (warm amber leaves #C4832A)
+├── maple_01.glb - maple_03.glb (+ LOD variants) → Maple trees (vermillion red-orange leaves #D04838)
+├── oak_01.glb - oak_04.glb (+ LOD variants) → Oak trees
+├── palm_01.glb - palm_05.glb (+ LOD variants) → Desert palms
+└── pine_01.glb - pine_03.glb (+ LOD variants) → Pine trees
```
+
+Tree models include LOD (Level of Detail) variants for performance optimization. Each tree type has multiple variants (e.g., `fir_01.glb`, `fir_01_lod1.glb`, `fir_01_lod2.glb`) for different viewing distances. All tree models have been normalized to consistent root depths to prevent floating or sinking into terrain.
+
+
### NPC Helper Functions
```typescript
From 7c663c24164fc765c5f743261e0b606c7cc8f4f0 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:06:05 +0000
Subject: [PATCH 4/9] Update wiki/data/overview.mdx
Generated-By: mintlify-agent
---
wiki/data/overview.mdx | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/wiki/data/overview.mdx b/wiki/data/overview.mdx
index 62522950..9aa72faa 100644
--- a/wiki/data/overview.mdx
+++ b/wiki/data/overview.mdx
@@ -720,6 +720,14 @@ interface VegetationLayer {
```
**Recent Updates**:
+- **165 tree model variants** added across 12 tree types (bamboo, birch, cactus, chinaPine, coconut, dead, fir, knotwood, maple, oak, palm, pine) with 3 LOD levels each
+- **Tree model depth normalization**: All fir variants aligned to fir_03's minY (-59.46), all maple variants aligned to maple_01's minY (-114.76) to prevent floating
+- **Maple tree recoloring**: Leaves changed to warm vermillion red-orange (#D04838)
+- **Knotwood tree recoloring**: Leaves changed from golden-yellow to warm amber (#C4832A)
+- **Terrain biome textures** added for TerrainShader rendering (grass, dirt, cliff, desert, snow variants)
+- **Woodcutting manifest updated**: Replaced 8 generic trees with 12 new tree types using `modelVariants` arrays
+- **Biomes manifest updated**: Removed stale `tree1` vegetation layers (trees now managed via TreeTypes.ts + woodcutting manifest)
+- **Wind Pine tree type** added for tundra biome (split from dead tree variants)
- Mushroom vegetation added to all biomes with varying densities (2-30)
- Tree density reduced in plains biome (8 → 5)
- Mushroom clustering varies by biome (cluster size 3-8)
From 0340c77be8bcdb0b40002c691dba24ccb943d9a3 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:06:26 +0000
Subject: [PATCH 5/9] Update concepts/skills.mdx
Generated-By: mintlify-agent
---
concepts/skills.mdx | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/concepts/skills.mdx b/concepts/skills.mdx
index 4ab9d3e2..c040bbf2 100644
--- a/concepts/skills.mdx
+++ b/concepts/skills.mdx
@@ -92,11 +92,23 @@ Success rate improves with level. Higher-level trees require higher Woodcutting
| Tree | Level | XP |
|------|-------|-----|
-| Normal | 1 | 25 |
+| Fir | 1 | 25 |
+| Pine | 1 | 25 |
+| Birch | 1 | 25 |
+| Bamboo | 1 | 25 |
+| China Pine | 1 | 25 |
+| Coconut Palm | 1 | 25 |
+| Desert Palm | 1 | 25 |
+| Dead Tree | 1 | 25 |
+| Cactus | 1 | 25 |
+| Knotwood | 1 | 25 |
+| Wind Pine | 1 | 25 |
| Oak | 15 | 37.5 |
-| Willow | 30 | 67.5 |
-| Yew | 60 | 175 |
-| Magic | 75 | 250 |
+| Maple | 45 | 100 |
+
+
+The game now features 12 distinct tree types with multiple model variants each. All basic trees (fir, pine, birch, bamboo, etc.) require level 1 Woodcutting and grant 25 XP. Oak requires level 15, and Maple requires level 45. Each tree type has 3-5 visual variants with LOD (Level of Detail) models for performance optimization.
+
### Mining
From 0e0d01fc9da8b60caf2989a614c94ef2c31c3122 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:06:33 +0000
Subject: [PATCH 6/9] Update concepts/skills.mdx
Generated-By: mintlify-agent
---
concepts/skills.mdx | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/concepts/skills.mdx b/concepts/skills.mdx
index c040bbf2..f8ae068e 100644
--- a/concepts/skills.mdx
+++ b/concepts/skills.mdx
@@ -193,11 +193,13 @@ Use tinderbox on logs in inventory to create a fire.
| Log | Level | XP |
|-----|-------|-----|
-| Normal | 1 | 40 |
-| Oak | 15 | 60 |
-| Willow | 30 | 90 |
-| Yew | 60 | 202.5 |
-| Magic | 75 | 303.8 |
+| Logs | 1 | 40 |
+| Oak Logs | 15 | 60 |
+| Maple Logs | 45 | 135 |
+
+
+Logs are obtained from all basic tree types (fir, pine, birch, bamboo, china pine, coconut palm, desert palm, dead tree, cactus, knotwood, wind pine). Oak and Maple trees produce their respective log types.
+
### Cooking
From cdb87e90fc25343163fd659e64a5a0ef7ecb1132 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:06:40 +0000
Subject: [PATCH 7/9] Update concepts/skills.mdx
Generated-By: mintlify-agent
---
concepts/skills.mdx | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/concepts/skills.mdx b/concepts/skills.mdx
index f8ae068e..5740bbe7 100644
--- a/concepts/skills.mdx
+++ b/concepts/skills.mdx
@@ -228,12 +228,9 @@ Craft bows and arrows from logs using a knife.
**Arrow Shafts** (Knife + Logs):
| Logs | Level | Shafts | XP |
|------|-------|--------|-----|
-| Normal | 1 | 15 | 5 |
-| Oak | 15 | 30 | 10 |
-| Willow | 30 | 45 | 15 |
-| Maple | 45 | 60 | 20 |
-| Yew | 60 | 75 | 25 |
-| Magic | 75 | 90 | 30 |
+| Logs | 1 | 15 | 5 |
+| Oak Logs | 15 | 30 | 10 |
+| Maple Logs | 45 | 60 | 20 |
**Bows** (Knife + Logs, then String):
| Bow | Level | XP (Cut) | XP (String) |
From 6583bca35cfc8827eb62a6276a4cdff2da04af2c Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:06:50 +0000
Subject: [PATCH 8/9] Update concepts/skills.mdx
Generated-By: mintlify-agent
---
concepts/skills.mdx | 6 ------
1 file changed, 6 deletions(-)
diff --git a/concepts/skills.mdx b/concepts/skills.mdx
index 5740bbe7..c6cfb9ba 100644
--- a/concepts/skills.mdx
+++ b/concepts/skills.mdx
@@ -239,14 +239,8 @@ Craft bows and arrows from logs using a knife.
| Longbow | 10 | 10 | 10 |
| Oak Shortbow | 20 | 16.5 | 16.5 |
| Oak Longbow | 25 | 25 | 25 |
-| Willow Shortbow | 35 | 33.3 | 33.3 |
-| Willow Longbow | 40 | 41.5 | 41.5 |
| Maple Shortbow | 50 | 50 | 50 |
| Maple Longbow | 55 | 58.3 | 58.3 |
-| Yew Shortbow | 65 | 67.5 | 67.5 |
-| Yew Longbow | 70 | 75 | 75 |
-| Magic Shortbow | 80 | 83.3 | 83.3 |
-| Magic Longbow | 85 | 91.5 | 91.5 |
**Arrows** (Arrowtips + Headless Arrows):
| Arrow | Level | XP (per 15) |
From 4bbdb1395c4f44233835bcf23b1b30dfbaca7256 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 13 Mar 2026 10:07:08 +0000
Subject: [PATCH 9/9] Update wiki/game-systems/skills.mdx
Generated-By: mintlify-agent
---
wiki/game-systems/skills.mdx | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/wiki/game-systems/skills.mdx b/wiki/game-systems/skills.mdx
index dba0bacd..94712568 100644
--- a/wiki/game-systems/skills.mdx
+++ b/wiki/game-systems/skills.mdx
@@ -277,16 +277,25 @@ XP lamps are commonly awarded as quest rewards, allowing players to choose which
Gathering resources is now defined in `manifests/gathering/` with OSRS-accurate XP values:
**Woodcutting** (`gathering/woodcutting.json`):
-| Tree | Level | XP |
-|------|-------|-----|
-| Normal | 1 | 25 |
-| Oak | 15 | 37.5 |
-| Willow | 30 | 67.5 |
-| Teak | 35 | 85 |
-| Maple | 45 | 100 |
-| Mahogany | 50 | 125 |
-| Yew | 60 | 175 |
-| Magic | 75 | 250 |
+| Tree | Level | XP | Variants |
+|------|-------|-----|----------|
+| Fir | 1 | 25 | 4 variants + LOD |
+| Pine | 1 | 25 | 3 variants + LOD |
+| Birch | 1 | 25 | 5 variants + LOD |
+| Bamboo | 1 | 25 | 4 variants + LOD |
+| China Pine | 1 | 25 | 4 variants + LOD |
+| Coconut Palm | 1 | 25 | 5 variants + LOD |
+| Desert Palm | 1 | 25 | 5 variants + LOD |
+| Dead Tree | 1 | 25 | 5 variants + LOD |
+| Cactus | 1 | 25 | 8 variants + LOD |
+| Knotwood | 1 | 25 | 4 variants + LOD (warm amber leaves #C4832A) |
+| Wind Pine | 1 | 25 | 1 variant (tundra biome) |
+| Oak | 15 | 37.5 | 4 variants + LOD |
+| Maple | 45 | 100 | 3 variants + LOD (vermillion red-orange leaves #D04838) |
+
+
+The game now features 12 distinct tree types with 165 total model variants (55 base models × 3 LOD levels). Each tree type has multiple visual variants for environmental diversity. All tree models have been normalized to consistent root depths to prevent floating or sinking into terrain. Trees are now managed via TreeTypes.ts + woodcutting manifest instead of the vegetation system.
+
**Mining** (`gathering/mining.json`):
| Ore | Level | XP | Success Rate (L1 → L99) |