EQUIPMENT_AND_UI_LANE.md

systems/EQUIPMENT_AND_UI_LANE.md

Equipment and the equipment UI — what exists, who builds what

Proposal tier, 2026-08-14. Named for Josh's veto.

Josh: *"how do I create the 3d equippable equipment? Or are you doing that and wiring it into the

game too along with UI (UI and menus should be like Diablo and world of Warcraft and FF7R) and with

the unequip-all auto swap to the trousers - so base minimal briefs are never shipped for player

viewing and are simply to protect us from nudity"*

---

1. Two rulings taken from that message

RULING A — the trousers ARE the unequip default. The base doll's brief is a nudity floor and is

never rendered to a player. That retires a design I had started: ELVEN_BASE_UNDERGARMENT_DESIGN_BRIEF.md

was specifying a *third* garment between the doll and the trousers, and it does not need to exist.

The layering is two visible states, not three:

layerseen by playerwhat it is
base doll + minimal briefneverthe nudity floor; exists so an unequipped slot is never bare
Inner Court trousersalways, as the floorwhat UnequipAll() swaps to
everything elsewhen equippedrides the 16 paper-doll slots above

Consequence worth stating: the "no waistband, no seam, no thickness" rule belongs to the **base

doll only**, because that bakes into the body mesh. The trousers keep their petal edge and raised

botanical relief — they are their own skeletal mesh with their own geometry.

Consequence for the base doll's cut: it must sit strictly INSIDE the trousers' coverage envelope —

lower at the waist than the V-front, higher at the leg than the petal edge — or it shows. Josh

caught exactly this on the current ladder.

RULING B — the UI register is Diablo / WoW / FF7R. Those three agree on the fundamentals, which

is what makes it a usable spec rather than a mood: a paper-doll panel with slots arranged around a

live character render, a grid inventory, stat delta on hover-compare, and rarity carried as colour.

---

2. Who builds what

The split Josh set stands, and equipment is no different from characters.

Josh builds the mesh. Meshy for geometry, Blender for assembly and the photoreal pass. What

lands is a garment mesh fitted to the base doll.

This lane does everything after the file exists:

requires it and there is no way around that)

The one hard requirement on the handoff: a garment mesh must be skinned to the SAME skeleton as

the base doll. This is why the base doll's silhouette has mattered all along — every piece of gear

in the game is fitted to it, and cloth baked into the doll is a permanent offset every garment

inherits.

---

3. What already exists, measured

UHumanityGarmentComponent (239 lines, Source/Humanity/Private/Core/) is real and correct:

EquipPiece(PieceId, SkeletalMesh, Slots)
    creates a SkeletalMeshComponent layer
    AttachToComponent(Body, SnapToTargetIncludingScale)
    SetLeaderPoseComponent(Body)          <- follows the body skeleton exactly
    SlotOccupancy map evicts the previous holder
UnequipPiece(PieceId) / UnequipAll()

Sixteen paper-doll slots carry an explicit paint order — rings 1, bracers 3, amulet 4, cape 5,

weapons 8 and 9, tiara 10, helmet 11, chest 12, leggings 13, gloves 14, boots 15, belt 16 — and

twelve of them also carry a vril seat (Heart, Sacral, Crown, Throat, Root, SolarPlexus, ThirdEye),

so gear is wired into the seat system rather than being cosmetic.

What does not exist: any equipment or inventory UI. The game ships PlayerHUD, QuestLog, Trade,

PauseMenu and Conversation widgets and nothing else. The component can equip from code today and

there is no way for a player to do it.

---

4. The build order

1. UnequipAll() gains a floor. Today it leaves the bare base doll. It must instead fall back

to the default garment for that character. Small change, and it is the ruling above made real.

2. One equipment piece end to end — the trousers, since they are the default and therefore the

most-seen garment in the game. Mesh → skeleton → registry row → equip → visible in play.

3. The paper-doll panel. Slot frames around a live character render, driven by the 16-slot

order that already exists.

4. Grid inventory + rarity colour, off the 7 item grades in T0_Rarity_Grade.

5. Hover-compare stat delta, which is the piece of the Diablo/WoW register that does the actual

work for a player.

Steps 1 and 2 are worth doing before any UI: a paper doll with nothing correct to show is a slower

way to find out the garment pipeline is wrong.

---

5. What this does not decide

skin. That is a design pass, not an engineering one, and it is Josh's.

never seen either way; the question is only which is cheaper to maintain across seven rungs.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root