πŸ’Ž

Miyoo Extraction RPG

Phase 3: Loot, Gear & Town Hub

3–4 weeks

Phase 3 turns the game into a true roguelike + Tarkov extraction experience. You will implement the full loot system (rarity scaling, random affixes, 0–3 augment slots), the complete town hub, inventory/equip UI, extraction logic, and daily/weekly tasks β€” all while keeping the Miyoo client lightweight and responsive.

🎯 Goal

Build the complete extraction loop: find powerful loot with meaningful progression, manage it in town, and risk everything on every run.

βœ… Final Deliverable

A fully playable solo extraction loop on real Miyoo hardware: gear up in town, enter a dungeon, loot rare items with affixes and augment slots, extract (or die and lose equipped gear), and see your stash update with new items and task rewards.

πŸ“‹ Prerequisites β€” Complete Phase 0, 1 & 2 First

  • βœ”οΈ Rust server with combat tick loop and classes
  • βœ”οΈ Miyoo client with chunk rendering and combat feedback
  • βœ”οΈ Working hybrid TCP+UDP networking
  • βœ”οΈ 16Γ—16 sprites for items, augments, weapons, and icons
  • βœ”οΈ Procedural dungeons and player movement

Detailed Steps for Phase 3

1

Expand Shared Crate with Full Item System

In shared/src/lib.rs define the complete data model for loot:

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Rarity { Common, Uncommon, Rare, Epic, Legendary }

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Affix {
    pub name: String,
    pub value: f32,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Augment {
    pub id: u32,
    pub name: String,
    pub effect: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Item {
    pub base_id: u32,
    pub rarity: Rarity,
    pub affixes: Vec<Affix>,
    pub augments: Vec<Option<Augment>>, // up to 3 slots, Some/None
    pub flavor_text: Option<String>,
}

This struct lives in the shared crate so both client and server understand every item identically.

2

Server: Implement Loot Generation Function

Create a pure function in the server that generates loot when enemies die or chests are opened:

  • Choose base item template
  • Roll rarity (weighted by dungeon depth)
  • Scale base stats by rarity multiplier
  • Roll random affixes (more and stronger on higher rarity)
  • Roll 0–3 augment slots (rarity strongly influences chance)

All randomness and math happens only on the server β€” the client receives the final computed Item.

3

Server: Extraction & Death Logic

When a player reaches an extract portal or dies:

  • Successful extraction β†’ move equipped items to persistent stash (SQLite)
  • Death β†’ equipped items are permanently lost (Tarkov-style)
  • Stash items are always safe
4

Client: Inventory Grid & Equip Screen

Build on Miyoo SDL2:

  • 4–6 column inventory grid (16Γ—16 item icons)
  • Hover/select shows tooltip with rarity color, affixes, augment slots, and flavor text
  • Drag-and-drop or button equip/unequip
  • Visual slots on items (tiny embedded augment icons in corners)
5

Client: Town Hub UI

Create several clean town screens:

  • Stash β€” view and manage extracted items
  • Vendors β€” buy/sell with stock that slowly improves via extractions
  • Augment Bench β€” insert/remove augments from items

Use the same tooltip system as inventory for consistency.

6

Implement Daily/Weekly Tasks + Bounty Board

On the server:

  • Simple task templates (e.g. β€œExtract with 2 Rare+ items”)
  • Auto-refresh daily/weekly
  • Track progress and award small rewards (potions, stash slots, vendor unlocks)

On the client: a clean β€œBounty Board” screen in town showing current tasks and progress.

7

Add Flavor Text & Visual Polish

Attach short flavor text to high-rarity items/augments. Add subtle visual cues on the client (rarity-colored names, glowing augment slots, tiny particles on legendary items).

8

Full Solo Loop Testing on Real Hardware

Test the complete loop end-to-end on the Miyoo:

  • Gear up in town
  • Enter dungeon, fight, loot
  • Extract successfully and see stash update
  • Die and confirm equipped gear is lost
  • Complete a daily task and receive reward

βœ… Phase 3 Complete When You Can:

  • βœ”οΈ Find, inspect, and equip loot with rarity, affixes, and augment slots
  • βœ”οΈ Use the full town hub (stash, vendors, augment bench, bounty board)
  • βœ”οΈ Successfully extract and permanently lose equipped gear on death
  • βœ”οΈ Complete daily/weekly tasks and see meaningful rewards
  • βœ”οΈ Play the entire solo extraction loop end-to-end on real Miyoo hardware

The core extraction loop is now complete and addictive. You are ready for Phase 4 where multiplayer queues and PvPvE come online.

Miyoo Extraction RPG β€’ Phase 3 HTML β€’ Generated April 2026