Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 28 additions & 9 deletions wiki/data/npcs.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
title: "NPC Data Structure"
description: "How NPCs and mobs are defined in Hyperscape"

Check warning on line 3 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L3

Did you really mean 'NPCs'?

Check warning on line 3 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L3

Did you really mean 'Hyperscape'?
icon: "users"
---

# NPC Data Structure

NPCs (Non-Player Characters) and mobs are defined in **JSON manifests** and loaded at runtime. This data-driven approach allows content to be modified without code changes.

Check warning on line 9 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L9

Did you really mean 'NPCs'?

<Info>
NPC data is managed in `packages/shared/src/data/npcs.ts` and loaded from `world/assets/manifests/npcs.json`.
Expand All @@ -14,7 +14,7 @@

## Data Loading

NPCs are **NOT hardcoded**. The `ALL_NPCS` map is populated at runtime:

Check warning on line 17 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L17

Did you really mean 'NPCs'?

Check warning on line 17 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L17

Did you really mean 'hardcoded'?

```typescript
// From npcs.ts
Expand Down Expand Up @@ -73,7 +73,7 @@

## Aggression Types

NPCs have different aggression behaviors:

Check warning on line 76 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L76

Did you really mean 'NPCs'?

```typescript
type AggressionType =
Expand Down Expand Up @@ -162,15 +162,34 @@

## Available 3D Models

NPCs use rigged GLB models from `/assets/world/forge/`:

| Model Path | Used For |
|------------|----------|
| `goblin/goblin_rigged.glb` | Goblins |
| `thug/thug_rigged.glb` | Bandits, thugs |
| `human/human_rigged.glb` | Guards, knights, shopkeepers |
| `troll/troll_rigged.glb` | Hobgoblins |
| `imp/imp_rigged.glb` | Dark warriors |
### Mobs

Hostile NPCs use models from `models/mobs/`:

Check warning on line 167 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L167

Did you really mean 'NPCs'?

| Model Path | Format | Used For |
|------------|--------|----------|
| `models/mobs/goblin/goblin.vrm` | VRM | Goblins |
| `models/mobs/goblin/goblin_rigged.glb` | GLB | Goblins (legacy) |
| `models/mobs/dark-ranger/dark-ranger.vrm` | VRM | Dark rangers |
| `models/mobs/dark-wizard/dark-wizard.vrm` | VRM | Dark wizards |

**Goblin Animations**:
- `models/mobs/goblin/animations/running.glb` - Running animation
- `models/mobs/goblin/animations/walking.glb` - Walking animation

### NPCs

Check warning on line 180 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L180

Did you really mean 'NPCs'?

Service NPCs use models from `models/npcs/`:

Check warning on line 182 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L182

Did you really mean 'NPCs'?

| Model Path | NPC |
|------------|-----|
| `models/npcs/banker/banker.vrm` | Banker |
| `models/npcs/captain-rowan/captain-rowan.vrm` | Captain Rowan |
| `models/npcs/fisherman-pete/fisherman-pete.vrm` | Fisherman Pete |
| `models/npcs/forester-wilma/forester-wilma.vrm` | Forester Wilma |
| `models/npcs/shopkeeper/shopkeeper.vrm` | Shopkeeper |
| `models/npcs/tanner-ellis/tanner-ellis.vrm` | Tanner Ellis |
| `models/npcs/torvin/torvin.vrm` | Torvin |

Check warning on line 192 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L192

Did you really mean 'Torvin'?

---

Expand All @@ -184,7 +203,7 @@
}
```

### Get NPCs by Category

Check warning on line 206 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L206

Did you really mean 'NPCs'?

```typescript
export function getNPCsByCategory(category: NPCCategory): NPCData[] {
Expand All @@ -194,17 +213,17 @@
}
```

### Get NPCs by Biome

Check warning on line 216 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L216

Did you really mean 'NPCs'?

```typescript
export function getNPCsByBiome(biome: string): NPCData[] {
return Array.from(ALL_NPCS.values()).filter((npc) =>
npc.spawnBiomes?.includes(biome)

Check warning on line 221 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L221

Did you really mean 'spawnBiomes'?
);
}
```

### Get NPCs by Level Range

Check warning on line 226 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L226

Did you really mean 'NPCs'?

```typescript
export function getNPCsByLevelRange(minLevel: number, maxLevel: number): NPCData[] {
Expand Down Expand Up @@ -292,7 +311,7 @@
"type": "aggressive"
},
"spawnBiomes": ["forest", "plains"],
"respawnTime": 30,

Check warning on line 314 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L314

Did you really mean 'respawnTime'?
"drops": {
"defaultDrop": {
"enabled": true,
Expand All @@ -307,14 +326,14 @@
{ "itemId": "iron_dagger", "minQuantity": 1, "maxQuantity": 1, "chance": 0.1 }
],
"rare": [],
"veryRare": []

Check warning on line 329 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L329

Did you really mean 'veryRare'?
}
}
```

---

## Adding New NPCs

Check warning on line 336 in wiki/data/npcs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/npcs.mdx#L336

Did you really mean 'NPCs'?

<Steps>
<Step title="Add to JSON Manifest">
Expand Down
40 changes: 30 additions & 10 deletions wiki/data/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Data Manifests Overview"
description: "Manifest-driven content system for NPCs, items, and world areas"

Check warning on line 3 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L3

Did you really mean 'NPCs'?
icon: "database"
---

Expand Down Expand Up @@ -58,12 +58,12 @@
│ └── misc.json # Miscellaneous items
├── recipes/ # Crafting recipes by skill
│ ├── cooking.json # Cooking recipes
│ ├── firemaking.json # Firemaking recipes

Check warning on line 61 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L61

Did you really mean 'Firemaking'?
│ ├── smelting.json # Ore smelting recipes
│ ├── smithing.json # Smithing recipes

Check warning on line 63 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L63

Did you really mean 'Smithing'?
│ ├── fletching.json # Fletching recipes (NEW)

Check warning on line 64 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L64

Did you really mean 'Fletching'?
│ ├── crafting.json # Crafting recipes (NEW)
│ ├── runecrafting.json # Runecrafting recipes (NEW)

Check warning on line 66 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L66

Did you really mean 'Runecrafting'?
│ └── tanning.json # Leather tanning recipes
├── gathering/ # Gathering skill data
│ ├── woodcutting.json # Tree data
Expand Down Expand Up @@ -100,23 +100,35 @@
| `category` | `"mob" \| "boss" \| "quest" \| "neutral"` | NPC type |
| `stats` | `NPCStats` | Combat stats (attack, strength, defense, health, ranged, level) |
| `drops` | `DropTable` | Loot table with rarity tiers |
| `spawnBiomes` | `string[]` | Biomes where NPC spawns |

Check warning on line 103 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L103

Did you really mean 'Biomes'?
| `modelPath` | `string` | Path to 3D model |
| `behavior` | `"passive" \| "aggressive"` | Combat behavior |

### Available 3D Models

**NPCs**:
**Mobs** (`models/mobs/`):
```
/assets/models/
├── goblin/goblin_rigged.glb → Goblins
├── thug/thug_rigged.glb → Bandits
├── human/human_rigged.glb → Guards, knights, warriors, rangers
├── troll/troll_rigged.glb → Hobgoblins
├── imp/imp_rigged.glb → Dark warriors
├── cow/cow.vrm → Cows
├── dark-wizard/dark-wizard.vrm → Dark wizards
└── dark-ranger/dark-ranger.vrm → Dark rangers
├── goblin/
│ ├── goblin.vrm → Goblin (VRM format)
│ ├── goblin_rigged.glb → Goblin (GLB format)
│ └── animations/
│ ├── running.glb → Running animation
│ └── walking.glb → Walking animation
├── dark-ranger/
│ └── dark-ranger.vrm → Dark ranger
└── dark-wizard/
└── dark-wizard.vrm → Dark wizard
```

**NPCs** (`models/npcs/`):

Check warning on line 123 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L123

Did you really mean 'NPCs'?
```
├── banker/banker.vrm → Banker
├── captain-rowan/captain-rowan.vrm → Captain Rowan
├── fisherman-pete/fisherman-pete.vrm → Fisherman Pete
├── forester-wilma/forester-wilma.vrm → Forester Wilma
├── shopkeeper/shopkeeper.vrm → Shopkeeper
├── tanner-ellis/tanner-ellis.vrm → Tanner Ellis
└── torvin/torvin.vrm → Torvin
```

**Stations**:
Expand Down Expand Up @@ -197,6 +209,14 @@
└── pine_01.glb - pine_03.glb (+ LOD variants) → Pine trees
```

**Miscellaneous Items** (`models/misc/`):
```
├── bones/bones.glb → Bones (mob drop)
├── coin-pile/coin-pile.glb → Coin pile
├── ashes/ashes.glb → Ashes
├── firemaking-fire/firemaking-fire.glb → Fire model for firemaking
└── headstone/headstone.glb → Headstone
```
<Note>
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.
</Note>
Expand Down Expand Up @@ -278,10 +298,10 @@
```

**Supported Tiers:**
- **Melee**: bronze, iron, steel, black, mithril, adamant, rune, dragon

Check warning on line 301 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L301

Did you really mean 'mithril'?
- **Tools**: Same as melee (with different skill requirements)
- **Ranged**: leather, studded, green_dhide, blue_dhide, red_dhide, black_dhide

Check warning on line 303 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L303

Did you really mean 'green_dhide'?

Check warning on line 303 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L303

Did you really mean 'blue_dhide'?

Check warning on line 303 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L303

Did you really mean 'red_dhide'?

Check warning on line 303 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L303

Did you really mean 'black_dhide'?
- **Magic**: wizard, mystic, infinity, ahrims

Check warning on line 304 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L304

Did you really mean 'ahrims'?

### Item Helper Functions

Expand Down Expand Up @@ -328,7 +348,7 @@

### Bank Notes

The system supports bank notes for stackable versions of items:

Check warning on line 351 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L351

Did you really mean 'stackable'?

```typescript
// From packages/shared/src/data/items.ts
Expand All @@ -351,7 +371,7 @@

## Drop Tables

NPCs have tiered drop tables:

Check warning on line 374 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L374

Did you really mean 'NPCs'?

```typescript
interface DropTable {
Expand Down Expand Up @@ -415,7 +435,7 @@

## World Areas

World areas define zones, biomes, and spawn points:

Check warning on line 438 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L438

Did you really mean 'biomes'?

```
packages/shared/src/data/
Expand All @@ -431,7 +451,7 @@
| `name` | Display name |
| `biome` | Biome type (forest, plains, etc.) |
| `difficulty` | 0-3 difficulty level |
| `mobs` | NPCs that spawn here |

Check warning on line 454 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L454

Did you really mean 'NPCs'?
| `resources` | Trees, fishing spots, etc. |
| `isSafe` | Whether it's a safe zone |

Expand All @@ -452,7 +472,7 @@

## Stations

Crafting stations are interactive objects that enable processing skills like smithing, smelting, and cooking:

Check warning on line 475 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L475

Did you really mean 'smithing'?

```typescript
interface StationData {
Expand Down Expand Up @@ -563,7 +583,7 @@

Stations are defined in `stations.json`:

- **Anvil** - Used for smithing bars into equipment

Check warning on line 586 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L586

Did you really mean 'smithing'?
- **Furnace** - Used for smelting ores into bars
- **Range** - Used for cooking food (reduces burn chance compared to fires)
- **Bank Booth** - Used for accessing bank storage
Expand Down Expand Up @@ -615,7 +635,7 @@

| Station | Purpose | Model | Scale | Y Offset |
|---------|---------|-------|-------|----------|
| **Anvil** | Smithing bars into equipment | `models/anvil/anvil.glb` | 0.5 | 0.2 |

Check warning on line 638 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L638

Did you really mean 'Smithing'?
| **Furnace** | Smelting ores into bars | `models/furnace/furnace.glb` | 1.5 | 1.0 |
| **Cooking Range** | Cooking food (reduced burn chance) | `models/cooking-range/cooking-range.glb` | 1.0 | 0.5 |
| **Bank Chest** | Accessing bank storage | `models/bank-chest/bank-chest.glb` | 0.5 | 0.75 |
Expand Down Expand Up @@ -651,7 +671,7 @@
| Dragon | 2 |
| Rune | 3 |
| Adamant | 4 |
| Mithril | 5 |

Check warning on line 674 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L674

Did you really mean 'Mithril'?
| Steel | 6 |
| Iron | 7 |
| Bronze | 8 (worst) |
Expand All @@ -663,14 +683,14 @@
| Dragon | 2 | 3 |
| Rune | 3 | 3 |
| Adamant | 4 | 4 |
| Mithril | 5 | 5 |

Check warning on line 686 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L686

Did you really mean 'Mithril'?
| Steel | 6 | 6 |
| Iron | 7 | 7 |
| Bronze | 8 | 8 |

---

## Vegetation & Biomes

Check warning on line 693 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L693

Did you really mean 'Biomes'?

### Vegetation Assets

Expand All @@ -692,13 +712,13 @@
}
```

**Recent maxSlope Updates** (March 2026):

Check warning on line 715 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L715

Did you really mean 'maxSlope'?
- **Tundra**: 0.8 → 1.8 (increased for terraced terrain)
- **Forest**: 0.8 → 1.5 (increased for landscape features)
- **Canyon**: 0.6 → 2.5 (increased for steep canyon walls)

**Vegetation Categories**:
- `tree` - Large trees (oak, willow, maple, yew, magic, fir, knotwood, dead, wind_pine)

Check warning on line 721 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L721

Did you really mean 'knotwood'?

Check warning on line 721 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L721

Did you really mean 'wind_pine'?
- `bush` - Small bushes and shrubs
- `fern` - Ground ferns
- `flower` - Decorative flowers
Expand All @@ -709,10 +729,10 @@

**Tree Types**:
- **Oak, Willow, Yew, Magic** - Standard woodcutting trees with multiple model variants
- **Maple** - Autumn trees with warm vermillion red-orange leaves (#D04838)

Check warning on line 732 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L732

Did you really mean 'vermillion'?
- **Fir** - Coniferous trees for forest biomes

Check warning on line 733 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L733

Did you really mean 'biomes'?
- **Knotwood** - Trees with warm amber-colored leaves (#C4832A)

Check warning on line 734 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L734

Did you really mean 'Knotwood'?
- **Dead** - Barren trees for tundra/canyon biomes

Check warning on line 735 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L735

Did you really mean 'biomes'?
- **Wind Pine** - Specialized pine tree for tundra biome (single model variant)
### Model Bounds System

Expand Down Expand Up @@ -746,11 +766,11 @@

The model bounds system is used by the terrain flattening system to calculate station footprints and by the collision system for efficient spatial queries.

### Biomes

Check warning on line 769 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L769

Did you really mean 'Biomes'?

The `biomes.json` manifest defines terrain biomes with vegetation, mobs, and environmental properties:

Check warning on line 771 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L771

Did you really mean 'biomes'?

**Available Biomes:**

Check warning on line 773 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L773

Did you really mean 'Biomes'?
- **Plains** - Open grasslands with gentle rolling hills (difficulty 0)
- **Forest** - Dense woodland with abundant trees (difficulty 1)
- **Valley** - Low-lying areas between hills (difficulty 0)
Expand All @@ -763,7 +783,7 @@

### Biome Vegetation Layers

Biomes in `biomes.json` define procedural vegetation layers that reference vegetation assets:

Check warning on line 786 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L786

Did you really mean 'Biomes'?

```typescript
interface VegetationLayer {
Expand All @@ -782,18 +802,18 @@
```

**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

Check warning on line 805 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L805

Did you really mean 'chinaPine'?

Check warning on line 805 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L805

Did you really mean 'knotwood'?
- **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)

Check warning on line 807 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L807

Did you really mean 'vermillion'?
- **Knotwood tree recoloring**: Leaves changed from golden-yellow to warm amber (#C4832A)

Check warning on line 808 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L808

Did you really mean 'Knotwood'?
- **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)

Check warning on line 811 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L811

Did you really mean 'Biomes'?
- **Wind Pine tree type** added for tundra biome (split from dead tree variants)
- Mushroom vegetation added to all biomes with varying densities (2-30)

Check warning on line 813 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L813

Did you really mean 'biomes'?
- Tree density reduced in plains biome (8 → 5)
- Mushroom clustering varies by biome (cluster size 3-8)
- Firemaking fire 3D model added (`models/firemaking-fire/firemaking-fire.glb`)

Check warning on line 816 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L816

Did you really mean 'Firemaking'?
- Tree model scales adjusted for better visual proportions (March 2026)
- Fir and maple model root depths normalized to prevent floating (March 2026)
- All fir variants aligned to fir_03's minY (-59.46)
Expand All @@ -805,7 +825,7 @@

Recipe manifests define crafting, processing, and production activities for artisan skills. All recipes follow a consistent structure with inputs, outputs, tools, level requirements, and XP rewards.

### Fletching Recipes

Check warning on line 828 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L828

Did you really mean 'Fletching'?

The `recipes/fletching.json` manifest defines bow and arrow crafting:

Expand All @@ -829,10 +849,10 @@
**Recipe Categories**:
- `arrow_shafts` - Knife + logs → arrow shafts (15-90 per log)
- `headless_arrows` - Arrow shafts + feathers → headless arrows
- `shortbows` - Knife + logs → unstrung shortbows

Check warning on line 852 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L852

Did you really mean 'shortbows'?
- `longbows` - Knife + logs → unstrung longbows
- `stringing` - Bowstring + unstrung bow → finished bow
- `arrows` - Arrowtips + headless arrows → finished arrows

Check warning on line 855 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L855

Did you really mean 'Arrowtips'?

### Crafting Recipes

Expand Down Expand Up @@ -861,11 +881,11 @@
**Recipe Categories**:
- `leather` - Needle + thread + leather → leather armor
- `studded` - Leather armor + steel studs → studded armor
- `dragonhide` - Needle + thread + dragon leather → dragonhide armor

Check warning on line 884 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L884

Did you really mean 'dragonhide'?
- `jewelry` - Gold bar + gems + mould → jewelry (at furnace)
- `gem_cutting` - Chisel + uncut gem → cut gem

### Runecrafting Recipes

Check warning on line 888 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L888

Did you really mean 'Runecrafting'?

The `recipes/runecrafting.json` manifest defines rune crafting at altars:

Expand Down Expand Up @@ -939,14 +959,14 @@
| **Goblin Slayer** | Novice | 1 | Help Captain Rowan deal with the goblin threat |
| **Lumberjack's First Lesson** | Novice | 1 | Help Forester Wilma gather and burn firewood |
| **Fresh Catch** | Novice | 1 | Help Fisherman Pete catch and cook fish |
| **Torvin's Tools** | Novice | 1 | Help Torvin forge a set of bronze tools |

Check warning on line 962 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L962

Did you really mean 'Torvin's'?

Check warning on line 962 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L962

Did you really mean 'Torvin'?

### Quest Stage Types

- **dialogue** - Talk to an NPC
- **kill** - Defeat a specific number of NPCs

Check warning on line 967 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L967

Did you really mean 'NPCs'?
- **gather** - Collect items through skilling
- **interact** - Use items or stations (cooking, smithing, etc.)

Check warning on line 969 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L969

Did you really mean 'smithing'?

---

Expand All @@ -957,7 +977,7 @@
- Items: Add to appropriate file in `items/` directory
- Gathering: Add to `gathering/woodcutting.json`, `mining.json`, or `fishing.json`
- Recipes: Add to appropriate file in `recipes/` directory
- NPCs: Add to `npcs.json`

Check warning on line 980 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L980

Did you really mean 'NPCs'?
</Step>
<Step title="Follow existing patterns">
Use the same structure as existing entries. For tiered equipment, specify the `tier` field.
Expand All @@ -983,12 +1003,12 @@

Three new artisan skills added with complete OSRS-accurate recipe manifests:

- **Fletching**: Arrow shafts, headless arrows, shortbows, longbows, bow stringing, arrow tipping (40+ recipes)

Check warning on line 1006 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1006

Did you really mean 'Fletching'?

Check warning on line 1006 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1006

Did you really mean 'shortbows'?
- **Crafting**: Leather armor, studded armor, dragonhide armor, jewelry, gem cutting (25+ recipes)

Check warning on line 1007 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1007

Did you really mean 'dragonhide'?
- **Runecrafting**: Air, mind, water, earth, fire, chaos runes with multi-rune level thresholds

Check warning on line 1008 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1008

Did you really mean 'Runecrafting'?

**New Assets**:
- Firemaking fire 3D model (`models/firemaking-fire/firemaking-fire.glb`)

Check warning on line 1011 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1011

Did you really mean 'Firemaking'?
- Comprehensive armor manifest with 80+ armor pieces across all combat styles

### Manifest Refactor (PR #3)
Expand All @@ -997,13 +1017,13 @@

- **Items split by type**: Weapons, tools, resources, food, ammunition, runes, armor, and misc are now in separate files
- **Gathering resources**: Woodcutting, mining, and fishing data moved to dedicated files
- **Recipe system**: New recipes directory for smelting, smithing, cooking, firemaking, fletching, crafting, and runecrafting

Check warning on line 1020 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1020

Did you really mean 'smithing'?

Check warning on line 1020 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1020

Did you really mean 'firemaking'?

Check warning on line 1020 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1020

Did you really mean 'fletching'?

Check warning on line 1020 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1020

Did you really mean 'runecrafting'?
- **Centralized requirements**: `tier-requirements.json` provides OSRS-accurate level requirements
- **Skill unlocks**: `skill-unlocks.json` documents progression milestones

### New Vegetation (PR #4)

Mushroom vegetation added to biomes with configurable density, clustering, and spawn parameters.

Check warning on line 1026 in wiki/data/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (hyperscape-ai) - vale-spellcheck

wiki/data/overview.mdx#L1026

Did you really mean 'biomes'?

---

Expand Down
Loading