Codex tab: Items and Economy
Items and Economy
revision 2 · exported 2026-11-03 · open the doc
(Idea) Everything in this tab is a proposal for Ray to accept, change or cut. It expands section 9 of the main Codex tab (Diablo-style gear that players find, collect and trade; gear that affects casting, such as breath; trading through a market, not directly between players) into a design that can be built. Places, people and lore come from the Story Bible. Numbers are first guesses, sized against today's battle code: the player has 100 HP, and the Training Golem has 120 HP and hits for 12 every 6 s.
Three rules hold everything else together:
- A glyph is traced, not bought. No honest shop, trader or market ever sells a spell or a glyph fragment. Spells come from fragments, teachers and the story (Story Bible section 3), so copper can never buy skill. The one exception is outside the law: the Undermere fence sells two stolen fragments to fallen players in Act 3 (section 4). Even then the player still has to trace them.
- Gear widens the window, never the ceiling. Gear can lengthen breath, loosen thumb sync and scale a spell's power. It never moves the fizzle line or the scorer's error curve, so a perfect cast stays out of reach (Codex section 6) and a sloppy cast still fizzles.
- Halfway is where both sides meet. Every Act 1–2 town sells its own side's goods; only the Halfway Market sells both, and only there are you served whatever your standing.
Currency Open page
(Idea) One currency: copper, the holed coins of the Halfway Market, carried threaded on a string. The UI writes amounts as "40 copper".
- Twinhold strikes silver measures and Lanternfall cuts glass tokens, but neither city takes the other's money. Halfway copper is the money both sides accept, so it is the one the player carries.
- Silver measures and glass tokens still turn up as loot. They are valuables (section 3): the Halfway weigh-house changes each for 50 copper. This keeps the three coins of the currency concept sheet (
Art/Concepts/creatures-items/items/currency-a.png) in the world without three purses in the UI. - The purse has no cap in play; the save stores it as a whole number (section 7).
Where copper comes from
| Source | Amount (first guess) | Notes |
|---|---|---|
| Aske's send-off | 20 | "Ferry money. I never charge, so it piles up." The player's whole purse at the start of Act 1. |
| Side quests (Codex section 8) | Act 1: 30–60. Act 2: 80–150 | The main income. Bulletin boards in Halfway, Twinhold and Lanternfall. Each quest and its reward is in the side quests tab (side-quests.md). |
| Delivering a letter | Twinhold: 100 copper. Lanternfall: an item, not copper | Ondine pays the debt to the exact copper; Iver gives a gift (Facet standing comes from giving). |
| Selling materials and valuables | 1–50 each | Glints carry no copper, being reflections, but they leave quicksilver and grit behind. |
| Selling gear and consumables | 40% of the price, rounded down, at least 1 | Buying and selling straight back always loses 60%, so there is no loop to farm. |
| Caches in the world | 5–40 | Under door-marks, in the Drowned Steps, in Shardfield ruins. |
Battles against glints, golems, constructs and wildlife pay in materials, never copper. Humans who yield can drop a valuable (a Silver Measure from the Evane, a Glass Token from the Facets) or, for outlaws, a little copper. The Proving Ring (PvP, Codex section 10) pays nothing but standing and a leaderboard place, so neither can be farmed for money.
Where copper goes
| Sink | Cost | Notes |
|---|---|---|
| Consumables | 6–60 each | The steady drain. |
| Gear | 25–300 in Acts 1–2 | The big purchases. Some pieces are commissions: copper plus materials (section 5). |
| The Lanternfall unbinder | 200 (150 with Rook's Sigil Chit) | Breaks an un-teaching seal (Story Bible section 2) instead of retracing the glyph. Evane NPCs hear about it. |
| Buy-back | What the shop paid you | The last five things you sold, until you leave the town. |
| Market Board listing fee | 10% of the asking price, paid up front | Only once the player Market Board exists (section 6). |
Aske's ferry stays free for everyone, as the Story Bible says. It is the one service in Velan with no price.
Rough budget
| By the end of | Copper earned in total | What it should have bought |
|---|---|---|
| Act 1 | About 250 | A cloak, a copper band, a handful of tonics. The Still-Water Locket (160) is the stretch goal. |
| Act 2 | About 1,500 | A matched pair of faction bands or a Facet cuff, a faction coat, one Act 2 charm, and a steady supply of tonics. |
Item categories Open page
(Idea) Four categories. Each item belongs to exactly one.
| Category | What it is | Stacks | Sell? | Trade on the Market Board? |
|---|---|---|---|---|
| Consumables | Tonics, food, chalk, sand: used up when used | Up to 10 per item | Yes | Yes |
| Gear | Worn on a wrist, the neck or the body | Up to 9 per item | Yes | Yes |
| Materials | Things to sell, hand in for quests, or pay into commissions; includes valuables | Up to 99 per item | Yes | Yes |
| Key items | Letters, glyph fragments, seals and passes | One of each, no count | No | No |
Consumables: when they can be used
- On the belt, in battle. The player picks up to three consumables for the belt before a battle. The belt sits along the top edge of the battle screen, in the upper middle where the thumbs never are (AGENTS.md, game rules). Tapping a slot uses one. A belt item can't be used while either thumb is down, and only one item every 4 s, so items support casting rather than replace it.
- Before a battle. Food and ward chalk are eaten or applied in the field. The player can have one meal and one ward prepared at a time. They last until the end of the next battle, then they are spent.
- At a fragment. Still water is poured over a glyph fragment before tracing it (section 3).
Battle HP starts full in every battle today, so food doesn't heal: it raises max HP for the next battle instead. If HP ever carries over between battles, food becomes healing (open question).
Gear and two-thumb casting
Casting takes both hands, so gear is about the hands and the breath. There are four slots:
| Slot | Holds | What it mostly does |
|---|---|---|
| Left band | One band or cuff | Power for a drawing style, thumb sync, shields, heals |
| Right band | One band or cuff | The same |
| Charm | One amulet, collar, pendant or stone | Breath and learning |
| Coat | One coat, robe or tunic | Guard (less damage per hit) |
Bands are per wrist, because each thumb is one hand. The Evane wear a glyph band on each wrist (Story Bible section 2); Aske still wears hers, inside out. What the two wrists wear together matters:
- Matched pair: the same band on both wrists. Evane bands give a pair bonus, like a mirrored cast: the hands agree.
- Odd pair: two different bands. Facet cuffs reward this, like an asymmetric cast: each hand its own.
- Even-handed: one Evane band and one Facet band. Threads (composites) get 8% more breath. This is the gear form of the unaligned path (Codex section 4: master techniques from both sides).
A matched pair needs two copies of the band, one per wrist.
Gear stats. Every stat maps onto something the scorer or the battle already has, so each one is a single number to apply:
| Stat | What it changes | Today's value | Cap from all gear |
|---|---|---|---|
| Breath (ms or %) | The spell's breath window, threads included (Codex section 6) | 600 ms default; per spell | +50% of the spell's window |
| Sync grace (ms) | How far apart the thumbs may start and end before timing costs | 80 ms | +60 ms |
| Power (%) | Effect size of spells of one drawing style (symmetry in the spell data: mirrored, parallel, independent) or all spells | 0.6x to 1.5x by quality | +25% |
| Shield (%) / Heal (%) | Shield and heal amounts | Per spell | +25% each |
| Stagger (s) | Stagger a spell applies | Per spell | +1.5 s |
| Guard | Damage taken per enemy hit, flat; a hit always does at least 1 | 0 | 6 |
| Learning bar (%) | The score a trace needs to count while learning | 55% | Down to 45% |
Bonuses from all slots add up, then the cap applies. Breath bonuses add to the breath that player level grants later (Codex section 6). No stat changes the fizzle line, the shape floor or the scorer's error curve.
Tiers. Every item has a tier, shown as its frame colour: common (unaligned, plain), fine (better unaligned work), faction (an Evane faction's or the Facets' own, framed in that colour) and unique (one in the world). For now every item has fixed stats. Diablo-style random rolls would come later and need their own save shape (open question).
Materials
Materials are dropped by enemies, gathered in the world and sold to the Halfway weigh-house or any shop that buys them. They are handed in for quest orders ("bring Tobin five river reeds") and paid into commissions. There is no crafting system; commissions are the one place materials buy something. Valuables (silver measures, glass tokens) are materials with no use except their sale price.
Key items: letters, fragments, seals
Key items are held or not held; they have no count, can't be sold, dropped or traded, and the story decides when they come and go. Their state lives in story flags, which the dialogue already sets (<<set_flag letter.twinhold 1>> in the send-off), so a key item is "held" when its flag says so (section 7).
- Letters. Aske's two letters are the first. A letter is carried (sealed), opened (seal broken) or delivered. Aske says "Don't read them". The letters viewer lets the player break a seal anyway, after a warning, and the recipient notices. Letters the player receives later (replies, the Still Choir's letters to the Facets) are open and readable.
- Glyph fragments. One key item per fragment: the stone, shard or tile the glyph is on. Tracing it is how a spell is learned (the learning code that exists). A split glyph is two items, one per half, and the spell can be traced only once both are held. A taught glyph has no item: the teacher is the fragment. The one exception is a stolen copy (the Undermere fence, section 4), which an outlaw cut from a taught or warp-born glyph and which traces like a whole one. After the spell is learned, the fragment stays in the glyph case as a record, and can be traced again to relearn a spell after an un-teaching.
- Seals and passes. Tokens that open a place or a service, or change its price: the Halfway truce token, the Waymaker caravan seal, Rook's sigil chit.
Starting catalogue Open page
(Idea) 48 items: everything a player can find or buy in the Prologue and Acts 1–2. Ids are snake_case, like spell ids. Prices are what a shop charges in copper; a shop pays 40% of it, rounded down. "Not sold" means the item can only be found or given. Each item's icon brief is the subject for its Midjourney prompt (section 3.5).
Consumables (11)
| Id | Name | Flavour | Effect | Found or sold | Price | Icon brief |
|---|---|---|---|---|---|---|
mend_tonic | Mend Tonic | The Tenders' draught. Tastes of crushed violets and something worse. | Belt: heal 20 | Halfway Pale Row (Sister Orla's Remedies), Greenvault | 18 | a small corked glass bottle of glowing violet draught with a vine tied round its neck |
deep_tonic | Deep Tonic | Brewed slow in Greenvault cellars for anyone who can pay for slow. | Belt: heal 45 | Greenvault, Twinhold | 50 | a squat round violet glass flask with a wax-sealed cork and a leaf stamped on the wax |
breath_tonic | Breath Tonic | Cold as river water. Your chest goes quiet for a while. | Belt: breath +15% for the rest of the battle | Halfway Pale Row, Twinhold, the Long Road | 35 | a tall slim bottle of pale blue tonic, frost on the glass |
amber_cordial | Amber Cordial | Facet courage. It burns going down, which they say is the point. | Belt: your next cast has +40% power; costs you 5 HP | Halfway Amber Row, Lanternfall | 30 | a faceted amber glass vial of glowing orange-gold cordial, a thin prismatic edge on the glass |
herb_salve | Herb Salve | Marra swears by it for everything. Mostly she is right. | Belt: clears every harmful effect on you, then heal 5 | Halfway Middle, Halfway Pale Row (Sister Orla's Remedies), Sallowbank bakehouse, Greenvault | 15 | a small clay pot of green salve tied with twine and a cloth lid |
waking_reeds | Waking Reeds | Dried Sallow reeds, crushed under the nose. Nobody stays down. | Belt, automatic: the first time you fall this battle, you stand back up with 25 HP | Halfway Middle, Hushfold | 60 | a tight bundle of dried pale river reeds bound with red thread |
hour_sand | Hour Sand | A Keeper's pinch of slow time, sold in twists of paper. | Belt: the enemy's next attack comes 3 s later | Twinhold (Keepers' stall) | 40 | a folded paper twist spilling fine glowing brass-gold sand |
honey_bread | Honey Bread | From the Sallowbank bakehouse. Marra gives it away faster than she sells it. | Before battle: +10 max HP in the next battle | Sallowbank bakehouse, Halfway Middle | 6 | a round golden loaf glazed with honey, wrapped in a cloth |
eel_pie | Eel Pie | Tobin's own. Do not ask about the eel. | Before battle: +20 max HP in the next battle | Sallowbank (Tobin), Halfway Middle, the Long Road | 12 | a small hand pie with a crimped crust and a fish-tail pattern cut in the top |
ward_chalk | Ward Chalk | Fenn's idea: chalk the door-mark on whatever is nearest before a fight. | Before battle: the first enemy hit in the next battle does half damage | Halfway Middle; Fenn gives the first stick | 10 | a stick of white chalk beside two small chalked mirrored L marks |
still_water | Vial of Still Water | Water that has never been stirred. Pour it on a fragment and the glyph shows clearer. | At a fragment: the learning bar drops from 55% to 45% for that tracing | Halfway Pale Row, Hushfold | 25 | a tiny wax-sealed glass vial of perfectly still clear water reflecting the sky |
Gear (18)
Bands (7). Wear one per wrist; a matched pair needs two.
| Id | Name | Flavour | Effect | Found or sold | Price | Icon brief |
|---|---|---|---|---|---|---|
reed_band | Plaited Reed Band | Tobin plaits them from Sallow reeds. They smell of the river for a year. | Breath +30 ms | Sallowbank (Tobin) | 25 | a plaited band of pale green river reed tied in a knot |
copper_band | Halfway Copper Band | Beaten from old market coins, holes and all. | Sync grace +10 ms | Halfway Middle | 45 | a simple copper wrist band made of flattened holed coins riveted together |
warden_band | Warden Glyph Band | Silver, engraved with a mirrored mark. Wardens wear one on each wrist. | Mirrored spells +4% power. Matched pair: sync grace +20 ms | Twinhold (Hall of Measure outfitter) | 120 | a polished silver wrist band engraved with a pair of mirrored pale blue L marks |
vine_band | Vine Band | A living vine that grows a little each night and has to be trimmed. | Heals +10%. Matched pair: heals +10% more | Greenvault | 110 | a band of living green vine with two small violet blossoms, wound round itself |
waymaker_band | Waymaker Band | Sailcloth and green cord. Waymakers swap them like other people shake hands. | Parallel spells +4% power. Matched pair: breath +60 ms | The Long Road (caravan quartermaster) | 120 | a band of pale canvas sailcloth bound with pale green cord and a tiny brass buckle |
shard_cuff | Shard Cuff | Salvaged mirror-glass set in slate. No two are cut alike. | Independent spells +5% power. Odd pair: independent spells' sync grace +30 ms | Lanternfall; Halfway Amber Row (commission) | 130 | an asymmetric cuff of dark slate set with jagged mirror-glass shards, amber light in the seams |
amber_cuff | Amber Cuff | Warm to the touch, like sunlight caught in resin. | Shields +10% | Halfway Amber Row, Lanternfall | 90 | a smooth cuff of warm glowing amber resin with a thin teal edge where it catches the light |
Charms (5). One at a time.
| Id | Name | Flavour | Effect | Found or sold | Price | Icon brief |
|---|---|---|---|---|---|---|
river_stone_charm | River Stone Charm | A flat Sallow stone with the door-mark painted on in Fenn's chalk. It won't wash off. | Repel's stagger +0.5 s | Given by Fenn in the Prologue | Not sold (sells for 2) | a flat grey river stone on a cord with two mirrored L marks painted in chalky red ochre |
still_water_locket | Still-Water Locket | A silver locket holding a disc of water that has never rippled. | Breath +8% | Halfway Pale Row; or Harl the silversmith sets the Wyrm Plate into one for 25 copper (Act 1) | 160 | a round silver locket opened to show a perfectly still disc of water |
reed_collar | Reed Collar | Worn by Still Choir monks, who never speak while wearing it. | Breath +80 ms | Hushfold (commission); Choirmistress Wen's reward (Act 2) | 200 | a woven collar of pale reeds with a single small silver bead at the front |
sigil_pendant | Sigil Pendant | Two unlike shapes fused: an amber circle and a mirror-glass triangle. Every Facet designs their own. | Independent spells' sync grace +30 ms | Lanternfall; Halfway Amber Row (Quill's Cut Glass); or the Lanternfall letter's gift | 170 | a pendant of an amber crystal circle fused to a triangle of mirror-glass, on a dark cord |
shard_cord | Shard on a Cord | A sliver of Shardfield glass. Something in it remembers being part of the Mere. | Learning bar 55% to 50% for every spell | Found in the Shardfield | Not sold (sells for 40) | a thin sliver of mirror-glass reflecting a different sky, hanging from a leather cord |
Coats (6). One at a time.
| Id | Name | Flavour | Effect | Found or sold | Price | Icon brief |
|---|---|---|---|---|---|---|
homespun_tunic | Homespun Tunic | Linen your mother wove. Patched at both elbows, the same way. | Guard 0 | Starting coat | Not sold (sells for 2) | a folded homespun linen tunic in oatmeal brown with rolled sleeves |
travel_cloak | Hooded Travel Cloak | Halfway wool, dyed neither blue nor amber, on purpose. | Guard 1 | Halfway Middle | 60 | a hooded wool travelling cloak in meadow green, folded, with a wooden toggle |
quilted_jerkin | Quilted Jerkin | Caravan guards wear these. They stop a punch and most of a glint. | Guard 2 | Halfway Middle | 140 | a padded quilted jerkin in earth brown leather and canvas |
adept_robe | Adept's Robe | Ivory and silver, both sleeves embroidered alike. | Guard 2; mirrored spells +3% power | Twinhold (Hall of Measure outfitter) | 240 | a perfectly symmetrical ivory robe with silver trim and matching pale blue embroidery on both sleeves |
one_sleeve_coat | One-Sleeve Coat | Slate cloth, one long sleeve, one bare arm. Facets call it honest. | Guard 2; independent spells +3% power | Lanternfall | 240 | an asymmetric dark slate coat with one long sleeve and one bare shoulder, amber sash |
windbreak_coat | Windbreak Coat | Waymaker oilcloth, cut for the wind pass. | Guard 3; breath +40 ms | The Long Road (commission) | 300 | a long oilcloth coat in pale canvas with pale green lining flapping in the wind |
Materials and valuables (8)
| Id | Name | Flavour | Effect | Found or sold | Price | Icon brief |
|---|---|---|---|---|---|---|
glint_quicksilver | Glint Quicksilver | What a glint leaves behind: a bead of loose reflection that rolls towards still water. | Sells; commissions; quest orders | Dropped by glints | Buys at 4 (shops don't sell it) | a small glass jar of shining quicksilver droplets |
mirror_grit | Mirror Grit | Glittering dust from broken reflections. Gets into everything. | Sells; commissions | Dropped by glints, other glass creatures and wildlife; the Shardfield | Buys at 2 | a small cloth pouch spilling glittering silver grit |
river_reeds | River Reeds | Sallow reeds, cut green. | Sells; commissions; Tobin's quest orders | Gathered on the Sallow banks | Buys at 1 | a small bundle of fresh green river reeds |
raw_amber | Raw Amber | Lumps of Shardfield amber. Facets say it is sunlight that got stuck. | Sells; commissions | Shardfield; Amber Row rewards | Buys at 8 | a rough lump of glowing warm amber |
marble_chips | Marble Chips | Offcuts from the old quarry under the Proving Ring. | Sells; commissions | Halfway quarry; Twinhold | Buys at 3 | a little pile of white marble chips |
glyph_dust | Glyph Dust | A warp-born glyph that faded before anyone traced it leaves this. Rare. | Sells; high commissions | Fresh warps; the Sallow Wyrm | Buys at 25 | a tiny drawstring pouch leaking softly glowing white-gold dust |
evane_silver | Silver Measure | An Evane coin, perfectly symmetric. Worth nothing outside Evane land, except by weight. | Sells only | Evane enemies, caches | Buys at 50 | a symmetric silver coin stamped with mirrored arches and a pale blue enamel centre |
facet_token | Glass Token | A Lanternfall token: cut mirror-glass in amber resin, no two the same shape. | Sells only | Facet enemies, caches | Buys at 50 | an irregular cut piece of mirror-glass set in amber resin |
Key items (11)
| Id | Name | Flavour | Effect | Found or sold | Price | Icon brief |
|---|---|---|---|---|---|---|
letter_twinhold | Letter to Twinhold | Pale blue wax, a mirrored seal. "Deliver both. Believe neither until you've met both." | Delivered to Prelate Ondine in Twinhold (Act 2; the working assumption, see open questions) | Given by Aske at the send-off | Not sold | a folded letter sealed with pale blue wax stamped with a symmetric mark |
letter_lanternfall | Letter to Lanternfall | Amber wax, a jagged seal, the same handwriting. | Delivered to Iver in Lanternfall (Act 2; the working assumption, see open questions) | Given by Aske at the send-off | Not sold | a folded letter sealed with amber wax stamped with a jagged two-shape mark |
fragment_coil | Coil Fragment | A step-stone from the Drowned Steps, the vine's path cut into it under the water. | Trace to learn Coil (whole glyph) | The Drowned Steps, end of the Prologue | Not sold | a flat wet river stone with a glowing violet S glyph and its mirror carved into it |
fragment_wither | Wither Fragment | A curl of dead wood from the stump on Greenvault's decay terrace, still warm. | Trace to learn Wither (whole glyph) | A dead stump on Greenvault's decay terrace, Act 2 | Not sold | a curl of grey dead wood with a glowing violet arch glyph carved along it |
fragment_squall | Squall Fragment | A sail-patch from the Endless Caravan's last camp, a lightning bolt stitched on it in green. | Trace to learn Squall (whole glyph) | The Endless Caravan's last known camp, Waymaker side quest, Act 2 | Not sold | a square canvas patch embroidered with a pale green lightning-bolt mark |
fragment_facet_seal_circle | Facet Seal: the Circle | Given freely, as Facets give everything. Half a lesson. | Half of Facet Seal (split glyph); needs the Square | Given in Lanternfall, Act 2 | Not sold | a round disc of amber glass with a glowing circle etched in it |
fragment_facet_seal_square | Facet Seal: the Square | Found standing in a shard, where someone left it to be found. | Half of Facet Seal (split glyph); needs the Circle | The Shardfield, Act 2 | Not sold | a square of mirror-glass with a glowing amber square etched in it |
corran_half_wave | Corran Shard: the Wave | A glass shard on a string, a low wave cut in it. You don't know what the glyph is. | The right-thumb half of Pavilion Wake (split glyph); completes Aske's shard in Act 3 | The Shardfield, Act 2 | Not sold | a glass shard on a string, a faint glowing amber wave line stopping at the break |
truce_token | Truce Token | A copper disc stamped half blue, half amber. Shows you agreed to the truce. | Entry to the Halfway Market Board; marks you as a truce-keeper's guest | Halfway gate, first visit | Not sold | a copper disc enamelled half pale blue and half amber, with a hole in the middle |
caravan_seal | Caravan Seal | A Waymaker seal: you ride with the caravan and the caravan vouches for you. | Lets you travel the Long Road with Dace's caravan | Caravan-master Dace, Act 2 | Not sold | a pale green wax seal on a canvas tag, stamped with two parallel peaks |
rook_sigil | Rook's Sigil Chit | Rook's own sigil on a scrap of glass. Facet traders know whose friend you are. | The Lanternfall unbinder charges 150 instead of 200, and Amber Row prices count you one standing band better (Neutral pays the Trusted price) | Rook, Act 1 (Halfway) or Act 2 | Not sold | a small scrap of mirror-glass painted with an amber sigil of two unlike shapes |
Icon prompts for Midjourney (VEL-66)
The inventory icon style is already set by VEL-51 (Art/Concepts/creatures-items/items/icons-items-a.png and icons-gear-a.png): one bold simple object, a clean dark outline, flat cel colours. To save fast hours, generate in 4×4 grids as VEL-51 did and cut the icons out; the 48 items make three grids:
| Grid | Items |
|---|---|
| 1 | All 11 consumables; quicksilver, grit, reeds, amber, marble chips |
| 2 | All 7 bands, all 5 charms; tunic, cloak, jerkin, windbreak coat |
| 3 | Adept's robe, one-sleeve coat; all 11 key items; glyph dust, silver measure, glass token |
Grid prompt: Flat game inventory icons for a mobile fantasy RPG, a neat 4 by 4 grid of item icons on a plain light background, each icon a single bold simple object with a clean dark outline and flat cel colors: <16 icon briefs, comma-separated>, consistent icon style, readable at small size --ar 1:1 --sref <anchor> --sw 40
Single-icon prompt (re-rolls): Single flat game inventory icon for a mobile fantasy RPG, <icon brief>, one bold simple object centred, clean dark outline, flat cel colors, plain light background, readable at small size --ar 1:1 --sref <anchor> --sw 40
<anchor> is the style anchor from Art/README.md. Adding the VEL-51 sheet as a second style reference (https://cdn.midjourney.com/875385a3-d80e-4d06-a694-65c653f8b3c8/0_3.png) should keep the new icons matched to it. Colour cues: Evane items are silver and marble with their faction's glyph colour (Wardens pale blue #7FD4FF, Tenders violet #B48CFF, Waymakers pale green #9CFFB0, Keepers brass-gold and Still Choir moonlight silver as VEL-51 proposed); Facet items lead with amber #FFC66B and a thin teal or violet edge; unaligned items are meadow green #7FA650, earth brown #A9744A, linen and reed.
Key and quest items the walkthroughs add
(Idea) The act walkthroughs and the bestiary add these items. Most are key items: held or not, tracked by an item.<id> flag (section 7). The two unique gear pieces are tracked by unique.<id>. They are outside the 48-item catalogue and its three icon sheets for now; their icons come later.
| Name | Id | From | Act | Use |
|---|---|---|---|---|
| Wyrm Plate | wyrm_plate | The Sallow Wyrm, granted once after the fight | Act 1 | A mirror plate that shows a different sky. Harl the silversmith in Halfway sets it into a Still-Water Locket for 25 copper, and the plate is used up. |
| Sentinel Glyph | sentinel_glyph | The Warden sentinel at the Measure Vault's third door | Act 2 | A sealed Warden glyph that can't be traced until Act 3 (bestiary). What it teaches is still open. |
| Seed Charm | seed_charm | Brother Fallow, the Tenders' envoy at the Twinhold court | Act 2 | The Tenders' invitation to Greenvault. No stats. |
| Hale's Note | hale_note | Novice Tull, the Keepers' envoy at the Twinhold court | Act 2 | Keeper Hale's sealed note: "Come to the Hour Stair when you are ready. You are not." A hook for Act 3. |
| Waymaker Ribbon | waymaker_ribbon | Three lost along the Long Road ridge | Act 2 | Ness's errand: bring her all three and she teaches Drift. |
| Worn Waymaker Ribbon | waymaker_ribbon_worn | Dace, after the wind pass | Act 2 | Any caravan on the Long Road carries you for free (fast travel). |
| Vault Map | vault_map | Iver, Lanternfall, if the player takes the Vault job | Act 2 | The way into the Measure Vault through the east-pier drain. |
| Wen's Letter | wen_letter | Choirmistress Wen, Hushfold | Act 2 | A courier side quest to Lanternfall; delivering it sets wen_letter.delivered. |
| Corran Shard: the Hourglass | corran_half_hourglass | Aske's shard, which the Corran girl pressed into her hand twenty years ago | Act 3 | The left-thumb half of Pavilion Wake. Aske and the player trace it with the Wave (corran_half_wave) at Corran's well. |
| Prism Snare: the Square | prism_snare_half_square | The Girdle house, Corran | Act 3 | The left-thumb half of Prism Snare (split glyph). |
| Prism Snare: the Triangle | prism_snare_half_triangle | The Keepers' confiscated shelf, the Hour Stair | Act 3 | The right-thumb half of Prism Snare. Taking it costs morality −5. |
| Colossus Heart | colossus_heart | The glint colossus, Corran | Act 3 | The warp-light it held. It is used in the scene after the fight, when the stilling is undone. |
| Hymn Page | hymn_page | The drowned choristers, the Undermere's flooded nave | Act 3 | A page of the Drowned Choir's hymn, for Tobin's side quest (side quests tab). |
| Stolen Fragment: Hasten | fragment_hasten | The Undermere fence | Act 3 | Trace to learn Hasten, on the fallen road where Hale doesn't teach it. |
| Stolen Fragment: Crown Surge | fragment_crown_surge | The Undermere fence | Act 3 | Trace to learn Crown Surge after the warp-born glyph has faded. |
| Ondine's Letter | letter_ondine | Prelate Ondine, by courier to Corran | Act 4 | A summons to the Heart Pane, readable in the item list. No other use. |
| Iver's Letter | letter_iver | Iver, by courier to Corran | Act 4 | A summons to the Heart Pane, readable in the item list. No other use. |
| Rope | rope | Sold in Halfway, 3 copper | Act 1 | A quest prop for side jobs. |
| Lamp Oil | lamp_oil | Sold in Halfway, 3 copper | Act 1 | A quest prop for side jobs. |
| Dry Boots | dry_boots | Sold in Halfway, 30 copper | Act 1 | Cosmetic, no stats. Aske notices them. |
| Twinhold Road Map | twinhold_road_map | The Measure Post, Halfway, 10 copper | Act 1 | Marks the Pale Road to Twinhold on the map. |
| Amber Goggles | amber_goggles | A rare drop from glyph-hunters in the Shardfield | Act 2–3 | Unique gear. Proposed slot: Charm. Proposed effect: learning bar 55% to 50% for split glyphs, and independent spells' sync grace +20 ms. |
| Split Glyph Band | split_glyph_band | A rare drop from Undermere outlaws | Act 3 | Unique gear. Proposed slot: Left or Right band. Proposed effect: it counts as an Evane band and a Facet band at once, so any pair it is part of is Even-handed (threads +8% breath), and threads get +40 ms breath on top. |
The Act 1 walkthrough sells rope, lamp oil and dry boots at Hob's Sundries, its name for a stall in the Middle. They are bought like goods but held like key items: they can't be sold back.
The Side Quests tab adds about twenty more quest props (such as choir_note, spare_wheel, letter_unsigned, records_copy, bevel_lash_half_line and bevel_lash_half_triangle). They are listed with their quests in that tab's last section, "Items, flags and names this tab adds", and follow the same rule: key items, no price, no icon until the icon sheets grow.
Shops: Acts 1–2 and the Undermere Open page
(Idea) What each town sells. Prices are the catalogue's unless a row says otherwise. A shop buys any consumable, gear or material at 40%; the Halfway weigh-house is the only buyer for valuables.
Halfway (Act 1 hub) Open page
The Halfway Market (section 6) has three parts, named as the Act 1 walkthrough names them: the Pale Row (Evane stalls under pale blue awnings), the Amber Row (Facet stalls under amber lamps), and the Middle Market, Halfway's own traders, between them. Stall and keeper names follow the Act 1 walkthrough, which lists what its scenes use.
| Stall | Part | Keeper | Sells |
|---|---|---|---|
| Hob's Sundries | Middle Market | Hob | Honey Bread, Eel Pie, Herb Salve, Ward Chalk, Waking Reeds, Halfway Copper Band; the quest props rope, lamp_oil and dry_boots. Hob also keeps the Market Board. |
| The Coat-maker | Middle Market | (unnamed) | Hooded Travel Cloak, Quilted Jerkin |
| The token-changer (the weigh-house) | Middle Market | (unnamed) | Sells nothing. Buys materials and valuables at the catalogue rate, whatever your standing. |
| Sister Orla's Remedies | Pale Row | Sister Orla | Mend Tonic, Herb Salve. Sister Orla, a Tender healer, teaches Mend in return for a small job (quest mend_lesson, Act 1). |
| The Still Corner | Pale Row | (unnamed) | Breath Tonic, Vial of Still Water |
| Harl, silversmith | Pale Row | Harl | Still-Water Locket; or sets the Wyrm Plate into one for 25 copper (Act 1) |
| The Measure Post | Pale Row | the clerk | twinhold_road_map (10); Warden letters (won't carry Aske's) |
| The Amber Stall | Amber Row | (unnamed) | Amber Cordial, Amber Cuff |
| Quill's Cut Glass | Amber Row | Quill | Shard Cuff as a commission: 90 copper and 3 Mirror Grit; Sigil Pendant; cuts the Wyrm Plate for 20 copper (Act 1) |
| Nell's table | Amber Row | Nell | Chalk copies of Facet glyphs, free (they fizzle until traced from a real fragment) |
Sallowbank (Prologue and Act 1) Open page
No shops and no shop screens: a village of neighbours. Two of them sell from the door, in conversation. Marra sells Honey Bread and Herb Salve at the bakehouse door, and Tobin sells Eel Pie and the Plaited Reed Band, and buys River Reeds. Starting gifts at the send-off: 20 copper (Aske), 2 Honey Bread (Marra), the River Stone Charm (Fenn) and a stick of Ward Chalk (Fenn).
Act 2
| Town | Shop | Sells |
|---|---|---|
| Twinhold | Hall of Measure outfitter | Warden Glyph Band, Adept's Robe, Breath Tonic, Deep Tonic |
| Twinhold | Keepers' stall | Hour Sand |
| Greenvault | Terrace stores | Mend Tonic, Deep Tonic, Herb Salve, Vine Band |
| Hushfold | The abbey door | Vial of Still Water, Waking Reeds, Reed Collar as a commission: 150 copper and 5 River Reeds |
| The Long Road | Caravan quartermaster | Waymaker Band, Breath Tonic, Eel Pie, Windbreak Coat as a commission: 220 copper and 2 Glint Quicksilver |
| Lanternfall | Cut-and-carry stalls | Shard Cuff, Amber Cuff, Sigil Pendant, One-Sleeve Coat, Amber Cordial |
| Lanternfall | The Giving Table | Nothing for sale: take one item free per visit; leave an item and Facet standing rises |
| Lanternfall | The unbinder | Breaks an un-teaching seal: 200 copper, or 150 with Rook's Sigil Chit |
Standing and service outside Halfway. Evane shops refuse to serve a player whose Evane standing (rep.evane) is low ("Come back when the Wardens will vouch for you"). Lanternfall never refuses anyone, since hoarding is the worst Facet insult, but a player who calls them "the Shattered" pays more there (Story Bible section 2: the name is a choice NPCs notice). Rook's Sigil Chit opens no door, since none is shut; it only lowers prices (section 3.4).
Act 3: the Undermere fence
(Idea) Vey, a fence in Mott's den in the Undermere (Act 3 walkthrough), serves only fallen players, since Mott lets only them down. Shop id undermere_fence.
| Town | Shop | Sells |
|---|---|---|
| The Undermere | The fence (Vey) | Stolen fragments of Hasten (fragment_hasten) and Crown Surge (fragment_crown_surge), 300 copper each (a first guess). Mend Tonic, Herb Salve and Amber Cordial at the catalogue price +50%, rounded down. |
Inventory rules Open page
(Idea)
- No slots, only stacks. The satchel holds any number of different items. Each item has one stack, capped by category: consumables 10, gear 9, materials 99. Key items have no stack. No inventory tetris on a phone.
- Overflow is sold, not lost. Anything that would push a stack past its cap is sold on the spot at 40%, with a line on screen: "Satchel full of Mend Tonics: sold 2 for 14 copper."
- Equipped gear stays in its stack. Equipping a band doesn't remove it from the satchel; it marks it worn. You can't sell or hand in the copies you are wearing; unequip first. A matched pair needs a stack of 2.
- Belt and prepared items stay in their stack until used. The belt shows what's left of each stack; an empty stack leaves its belt slot greyed.
- Commissions list copper and materials. The shop takes both when you commission; the gear is handed over at once (no waiting).
- Selling. 40% of the price, rounded down, at least 1. Key items can't be sold. The last five things you sold can be bought back at what you were paid, until you leave the town.
- Uniques. One-off items (the Lanternfall letter's gift, Shardfield finds, the Amber Goggles and the Split Glyph Band) are recorded in story flags, so they can't be bought or found twice.
The Halfway Market under truce Open page
(Idea) Halfway stands where the Evane roads meet the Facet ones, and both sides need its trade, so both keep its truce. The Market is the Codex section 9 market, and the place the Proving Ring stands beside.
- No casting inside the boundary stones. Field casting is switched off in the Market; a prompt that tries reads "The truce holds here." No battle can start inside it. Anyone caught casting is barred from every stall for a season. It is the one place in Velan with no spells at all, which is why both sides trust it.
- No un-teaching. Warden courts have no reach in Halfway. Un-taught casters and Facet unbinders can walk the Market openly.
- Everyone is served. Unlike Twinhold, no stall in Halfway refuses a customer, whatever their standing with either side. Standing still sets the price on each Row: your Evane standing on the Pale Row, your Facet standing on the Amber Row. The Middle and the weigh-house charge everyone the same.
| Standing with that side | Track value (rep.evane on the Pale Row, rep.facets on the Amber Row) | Price on its Row |
|---|---|---|
| Trusted | 25 or more | −10% |
| Neutral | −24 to 24 | Catalogue price |
| Distrusted | −25 to −59 | +15% |
| Shunned | −60 or less | +30% (still served: truce) |
Both tracks run from −100 to 100, start at 0 and move in steps of 5. Rook's Sigil Chit counts the player one band better on the Amber Row. Until the reputation system exists, everyone is neutral.
- The truce token. The gate wardens, one Warden and one Facet who walk the gate together, give it on the first visit. It is a key item and opens the Market Board.
- The Market Board. Codex section 9: trading goes through a market, never directly between players. In single-player the Board is stocked by NPC consignments that change each in-game day. When there are servers, players list items on it: only consumables, gear and materials; an asking price; a 10% listing fee up front, which is a copper sink. The Market holds the item until a buyer pays, and the seller collects the copper at the Board on their next visit. There is no trade window, gifting or mail between players: the Board is the only way items pass from one player to another. Key items and glyphs never pass at all.
Save model impact (`Velan.Save`) Open page
(Idea) A short spec for a later pure-C# ticket. Velan.Save stores what the player holds; it doesn't know the catalogue, so it checks shapes, not rules. Caps, prices, slot kinds and standing belong to the item rules (VEL-78 decides where they live).
What to add
Bump SaveSchema.CurrentVersion to 2. New fields on SaveGame, all required, in this JSON shape (camelCase, like the rest of the save):
"purse": 20,
"inventory": [
{ "itemId": "homespun_tunic", "count": 1 },
{ "itemId": "warden_band", "count": 2 },
{ "itemId": "mend_tonic", "count": 3 }
],
"equipment": { "leftBand": "warden_band", "rightBand": "warden_band", "charm": "", "coat": "homespun_tunic" },
"belt": ["mend_tonic", "", ""],
"prepared": { "meal": "eel_pie", "ward": "" }
public int Purse;
public List<ItemStack> Inventory = new List<ItemStack>();
public Equipment Equipment = new Equipment();
public List<string> Belt = new List<string> { "", "", "" };
public PreparedItems Prepared = new PreparedItems();
public sealed class ItemStack { public string ItemId = ""; public int Count; }
public sealed class Equipment { public string LeftBand = ""; public string RightBand = ""; public string Charm = ""; public string Coat = ""; }
public sealed class PreparedItems { public string Meal = ""; public string Ward = ""; }
""means an empty slot, asSaveLocationdoes for its ids.- Inventory order is the player's order (the satchel is sorted in the UI however the player chose), so it is written in list order, not sorted. Everything else stays deterministic, as the serializer already promises.
- Key items add nothing to the save. Their state is story flags, which
Flagsalready holds:letter.twinholdandletter.lanternfall(1 carried, 2 delivered; the send-off already sets 1),letter.twinhold.openedandletter.lanternfall.opened(1 once the seal is broken),item.<itemId>for every other key item (1 held, 0 gone, e.g.item.fragment_coil,item.truce_token), andunique.<itemId>for one-off gear already given. Learned spells stay inKnownSpellIds. - Not saved: the buy-back list (cleared on leaving town) and Market Board listings (server-side, later).
Rules for the serializer
Reject, with SaveFormatException naming the field, as the existing readers do:
pursenot a whole number, or below 0.inventorynot an array; an entry without a non-empty stringitemId;countnot a whole number of at least 1; the sameitemIdtwice (one stack per item).equipmentmissing any of its four keys, or a value that isn't a string.beltnot an array of exactly three strings.preparedmissingmealorward, or a value that isn't a string.
Don't check that equipped, belt or prepared ids are in the inventory, or that counts are under the caps: the catalogue can change between builds, and the item rules fix that up on load (an equipped item no longer held is unequipped; an unknown id is dropped and logged).
New game and migration
SaveGame.NewGame:Purse0, inventory[{ homespun_tunic, 1 }],Coat=homespun_tunic, everything else empty. The send-off's gifts arrive through dialogue, not the new-game defaults.- Migration from version 1 adds exactly those defaults to the JSON.
Tests
- Round trip of a save with every new field filled, and with every field empty.
- Loading a version 1 save gives the new-game defaults above.
- One rejection test per rule in "Rules for the serializer".
- The same save always writes the same text (inventory order kept).
For the item rules and dialogue (not `Velan.Save`)
Listed so VEL-78 and the dialogue tickets have them in one place: item data files in Assets/StreamingAssets/Data/Items/<id>.json with an index.json (id, name, category, slot, tier, faction, price, stats, pair bonus, flavour, icon), shop files in Data/Shops/<id>.json (stock with optional price overrides, flag conditions and commission materials); add and remove with the stack caps and overflow sale; buy and sell with the standing modifier; equip checks for slot kind and stack count; stat totals with the caps from section 2; and dialogue commands <<give_item id count>>, <<take_item id count>>, <<give_copper n>>, <<open_shop id>> with functions item_count("id") and copper().
Screens needed Open page
(Idea) Four screens, in the landscape layout the rest of the game uses. They are menus, so the thumbs are free, but the main action button still sits in the upper middle to match the battle screen.
Inventory
- Opened from the pause menu, and from a satchel button in the field.
- Tabs: Satchel (consumables), Gear, Materials, Key items (with sub-tabs Letters, Glyph case, Seals).
- A grid of icons with counts. Tapping one opens the item detail.
- The Gear tab shows the four slots as a figure with two wrists, a neck and a coat, with the current pair state ("Matched pair", "Odd pair", "Even-handed") and the stat totals against their caps.
- The Satchel tab has the belt (three slots) and the prepared meal and ward along the top; drag an item onto a slot or tap it and choose.
- The purse in copper in the corner.
Item detail
- Large icon, name, tier frame, flavour line, effect in plain words, the sale price, and where it came from.
- Gear: what it changes against what you wear now ("Breath +30 ms: 600 → 630 ms on Repel"). Equip to left, Equip to right, Unequip.
- Consumables: Use (field-usable ones), Put on belt, Prepare.
- Fragments: Trace (opens the learning session), or "Needs its other half" for a split glyph.
- Key items have no Sell or Drop.
Shop
- Opened from a stall NPC with
<<open_shop id>>. The stall's name and Row colour (pale blue, amber or Halfway's plain) along the top, and a line from the keeper. - Tabs: Buy, Sell, Buy back. Each row: icon, name, effect, price; the standing modifier shown on the price ("−10%, the Pale Row trusts you").
- Commissions list their materials with what you hold ("Mirror Grit 2/3").
- Buying asks for a count with a stepper, capped by what you can afford and the stack cap.
- Selling shows the copper you get, and greys out equipped copies.
Letters viewer
- The Key items › Letters sub-tab, and the screen a letter opens on when given.
- Each letter as its envelope front: the address in the sender's hand, the seal in its colour (pale blue for Twinhold, amber for Lanternfall), and its state: Sealed, Seal broken, Delivered.
- A sealed letter has one action, Break the seal, behind a warning in Aske's words ("Don't read them."). Breaking it sets
letter.twinhold.openedorletter.lanternfall.opened, shows the letter, and the recipient notices on delivery. - Received letters are open: the full text on paper, readable any time.
The battle belt is not a screen but needs space on the battle HUD (Hud.cs, a shared file), so it needs its own Lead ticket.
Open questions for Ray Open page
- One currency (Halfway copper, with Evane silver and Facet glass as loot to sell), or a coin for each side? Recommendation: one currency, copper, everywhere in the Codex; silver measures and glass tokens stay valuables (VEL-63).
- Fixed named gear for now, with Diablo-style random rolls later? Random rolls need a different save shape (one record per item instead of stacks).
- Staffs: the VEL-51 sheet has them, but casting takes both hands. Cut them, make them cosmetic (carried on the back), or give them a slot?
- Should HP carry over between battles? Today every battle starts at full HP, so food raises max HP for the next battle instead of healing.
- Items in battle at all? The belt (three items, one every 4 s, never mid-stroke) is proposed; the alternative is pure casting, with items only before battle.
- May the player break the seal on Aske's letters, and what does it cost them?
- Confirm that no glyph is ever for sale, including in the Undermere. Recommendation: no honest shop sells one. The Undermere fence is the one exception: stolen fragments of Hasten and Crown Surge, for fallen players only, and they still have to be traced (VEL-63).
- Is the Lanternfall Giving Table worth building, and should leaving items raise Facet standing?
- Real money: none for gear or copper (no pay-to-win) is assumed. Cosmetics only, later, or nothing?
- The gear caps (breath +50%, sync grace +60 ms, power +25%, guard 6): right ballpark before playtesting?
- Who are the letters addressed to? (Already open in the Story Bible; the letters viewer shows the names.) Recommendation: the Twinhold letter to Ondine and the Lanternfall letter to Iver, as Act 2 has them. Every tab works to that until the Story Bible settles it (VEL-63).