Migration Guide: Artisan Skills Update
Guide for updating existing Hyperscape installations to support the new artisan skills (Crafting, Fletching, Runecrafting).Overview
This update adds three new artisan skills to Hyperscape:- Crafting: Create leather armor, dragonhide equipment, jewelry, and cut gems
- Fletching: Create bows and arrows
- Runecrafting: Convert essence into runes at altars
Database Migrations
Three new migrations add skill columns to thecharacters table:
Migration 0029: Crafting Skill
Migration 0030: Fletching Skill
Migration 0031: Runecrafting Skill
Automatic Migration
Migrations run automatically on server startup. No manual intervention required. To verify migrations:Manual Migration (if needed)
If automatic migration fails, run manually:Code Changes
SkillsSystem Updates
The SkillsSystem now includes three new skills:getTotalLevel(): Now includes crafting, fletching, runecraftinggetTotalXP(): Now includes crafting, fletching, runecraftinggetSkills(): Returns all 17 skills
New Systems
Three new systems added topackages/shared/src/systems/shared/interaction/:
- CraftingSystem.ts: Tick-based crafting with thread consumption
- FletchingSystem.ts: Tick-based fletching with multi-output support
- RunecraftingSystem.ts: Instant essence-to-rune conversion
ProcessingDataProvider Updates
Extended to support new recipe types: New Methods:getCraftingRecipe(outputItemId)getCraftingRecipesByStation(station)getFletchingRecipe(recipeId)getFletchingRecipesForInput(itemId)getFletchingRecipesForInputPair(itemA, itemB)getRunecraftingRecipe(runeType)getRunecraftingMultiplier(runeType, level)getTanningRecipe(inputItemId)
recipes/crafting.json: 30+ crafting recipesrecipes/tanning.json: 5 tanning recipesrecipes/fletching.json: 37 fletching recipesrecipes/runecrafting.json: 11 runecrafting recipes
New Entities
RunecraftingAltarEntity
New entity type for runecrafting altars: Location:packages/shared/src/entities/world/RunecraftingAltarEntity.ts
Features:
- Interactable altar entity
- Stores rune type (air, mind, water, etc.)
- Triggers instant essence-to-rune conversion
- Visual model with glow effect
Client UI Updates
New Panels
Three new UI panels added topackages/client/src/game/panels/:
- CraftingPanel.tsx: Crafting interface with category grouping
- TanningPanel.tsx: Tanning interface with hide selection
- FletchingPanel.tsx: Fletching interface with category grouping
- Category-based recipe grouping
- Output quantity display (for multi-output recipes)
- Make-X quantity selection (1, 5, 10, All, custom)
- Level requirement indicators
- Material availability checks
- Desktop and mobile responsive layouts
Skills Panel Updates
The skills panel now displays 17 skills (was 14): New Skills:- Crafting (icon: needle)
- Fletching (icon: bow)
- Runecrafting (icon: altar)
Network Protocol Updates
New Packet Types
Added topackages/shared/src/platform/shared/packets.ts:
Crafting:
craftingInteract: Trigger crafting interactioncraftingRequest: Request crafting with quantitycraftingInterfaceOpen: Server sends available recipescraftingStart: Crafting session startedcraftingComplete: Crafting session completed
fletchingInteract: Trigger fletching interactionfletchingRequest: Request fletching with quantityfletchingInterfaceOpen: Server sends available recipesfletchingStart: Fletching session startedfletchingComplete: Fletching session completed
tanningInteract: Trigger tanning interactiontanningRequest: Request tanning with quantitytanningInterfaceOpen: Server sends available recipestanningComplete: Tanning completed
runecraftingInteract: Trigger runecrafting interactionrunecraftingComplete: Runecrafting completed
Backwards Compatibility
Existing Characters
Existing characters automatically receive the new skills at level 1 with 0 XP:craftingLevel = 1,craftingXp = 0fletchingLevel = 1,fletchingXp = 0runecraftingLevel = 1,runecraftingXp = 0
Existing Items
All existing items remain functional. New items added: Crafting Materials:- Thread, needle, chisel, moulds (ring, necklace, amulet, bracelet)
- Leather, dragonhide (green, blue, red, black)
- Uncut gems (sapphire, emerald, ruby, diamond)
- Knife, bowstring, feathers
- Arrow shafts, headless arrows, arrowtips
- Unstrung bows (shortbow, longbow variants)
- Rune essence, pure essence
- Runes (air, mind, water, earth, fire, body, cosmic, chaos, nature, law, death)
Testing
Verify Installation
- Check database schema:
- Check recipe manifests:
- Test in-game:
- Create new character
- Check skills panel shows 17 skills
- Try crafting: Use needle on leather
- Try fletching: Use knife on logs
- Try runecrafting: Click on air altar with rune essence
Common Issues
Recipes not loading:- Check manifest files exist
- Verify JSON syntax is valid
- Check server logs for validation errors
- Restart server
- Verify migrations ran successfully
- Check database columns exist
- Verify auto-save is working (5s interval)
- Check client has latest build
- Verify network packets are registered
- Check browser console for errors
Rollback
If you need to rollback the artisan skills update:Database Rollback
Code Rollback
Performance Impact
Memory Usage
- CraftingSystem: ~1KB per active session
- FletchingSystem: ~1KB per active session
- RunecraftingSystem: No active sessions (instant)
- ProcessingDataProvider: ~50KB for all recipe data
CPU Usage
- Crafting: Processes once per tick (600ms) per active session
- Fletching: Processes once per tick (600ms) per active session
- Runecrafting: Instant (no tick processing)
Database Impact
- New Columns: 6 integer columns per character (~24 bytes)
- Auto-Save: Skills saved every 5 seconds (existing behavior)
- No Additional Queries: Skills saved with existing character save
Support
For issues with the artisan skills update:- Check this migration guide
- Review ARTISAN-SKILLS.md for usage
- Check server logs for errors
- Report bugs in GitHub Issues
Changelog
Added
- Crafting Skill: 30+ recipes for leather, dragonhide, jewelry, gems
- Fletching Skill: 37 recipes for bows and arrows
- Runecrafting Skill: 11 rune types with multi-rune multipliers
- Tanning System: Instant hide-to-leather conversion
- ProcessingDataProvider: Recipe loading and lookup for all artisan skills
- CraftingPanel: UI for crafting interactions
- FletchingPanel: UI for fletching interactions
- TanningPanel: UI for tanning interactions
- RunecraftingAltarEntity: Interactable altar entity
Changed
- SkillsSystem: Now supports 17 skills (was 14)
- Skills Panel: Displays all 17 skills
- Database Schema: Added 6 new skill columns
- Total Level Calculation: Includes crafting, fletching, runecrafting
Fixed
- Mining Rocks: Force metalness=0 on PBR materials for correct stone appearance
- Depleted Rocks: Align to ground using bounding box
- Headstone: Replaced placeholder box with headstone.glb model
Version History
- v1.0.0 (2026-01-31): Initial artisan skills release
- Crafting skill with 30+ recipes
- Fletching skill with 37 recipes
- Runecrafting skill with 11 rune types
- Tanning system
- Database migrations 0029-0031