Deliverable #43 · 2026-10-28
Furniture, twelve Persian rugs and Madame Zahra — and everything on a cell at once
Kris, by voice, 28 October: “create multiple new objects which are different furniture that goes in your home, and for the fake people’s homes to have stuff in them — so other players know they will be able to get that stuff later.” The rugs: “maybe a dozen different patterns… pretty and kind of Persian style”, and “when you’re carrying them I want them to be kind of rolled up… a little animation of pick up and put down” — sold by a new character in the Bazaar. “All of these things are things that a player can pick up and put down.”
Every picture below is the game’s own renderer. All of it is on the staging server only, and when this was written none of it had been tried on a phone — Kris is trying it now.
How to try it
Open spellgrove.com/play-staging, or install the staging APK, spellgrove-staging-66c1d13b.apk. Staging has its own accounts: make one with an email on the title screen.
- The Badlands: a showroom of the twelve rugs with furniture standing on them, 38 things in all, a few steps north of where you come in from the Mountain Pass. Tap any piece to pick it up. Put it down and it faces back at you; a rug unrolls away from you.
- The Bazaar: Madame Zahra’s stall is on the right, across from Hob Hartwood.
- A villager’s house: the villagers are the made-up players coming with the houses, so the Village never feels empty. Knock on one of their four houses and go in: each is furnished.
- Everything on a cell: walk onto any cell with several things on it.
The furniture


A kitchen table, a kitchen chair, a lounge chair, a bed, a lamp, a bookshelf, a kitchen sink and a stove. Each is picked up and carried the way the chest is (deliverable #38) — a table or a bed shrinks to an armful while you carry it — and each can be placed by hand in the area editor. The table is two cells wide and the bed two cells long; the rest take one cell. The wood is darker than the honey plank floor so the furniture doesn’t disappear against it. Each piece is seven to ten draw calls. The lamp gives no real light, which would cost frame time on a phone; its glass glows instead.
The villagers’ homes are furnished, each one once, the first time the server sees it: one of four rooms (two plans and their mirror images) and a rug of its own. A visitor can only walk around, so nobody takes anything.
Where players get furniture of their own isn’t decided yet.
Twelve Persian rugs



You can walk on a rug, and one piece of furniture can stand on it, but never another rug, and a rug never goes on water. Rose Prayer and the Emerald Tree have a top and point away from whoever laid them.
Which way a thing faces
Kris asked that “the way that you’re facing when you put it down is the way that it would be laid out”: “if I’m facing upwards a chair that I put down would be facing forwards.” It was built as: a thing faces back at whoever put it down. Walk up the screen and set a bookshelf down, and it faces the camera. A bigger piece is laid out along the way you face, its near edge against your cell, so a rug rolls out away from you the long way. Trying it on his phone, Kris settled the one exception: “only the chair… they will want chairs next to a table, facing into it — they will want bookshelves next to a wall, facing out — the player can’t stand in the table or inside the wall.” So the kitchen chair faces the way you face, into the table, and everything else faces you.
There is no Turn button for a piece that is already down. Kris: “pick up and put down facing another way achieves this and is figure-out-able… it’s fine if it’s a little fiddly getting it right.”
Madame Zahra, the rug seller


Kris asked for her by voice: “Madame, Madame something… two sounds or something like that. Something Arabic would be kind of cool… a wolf face, almost red locks, all long flowing hair, and be dressed very much as a hippie… maybe almost slightly Jamaican, but very feminine and hippie in how she is. And she has her own table there in the Bazaar, off to the left or right, and a pile of rugs.”
Her name is Zahra, “blossom” in Arabic: a flower child, two soft sounds, and it ends like Rah. Three were offered — Zahra, Henna (the red dye itself) and Qamar (“moon”) — and Kris: “the name is great.” It is her name now, not a working one.
Her stall is on the right of the Bazaar, across from Hob: her table, her pile of rugs at her right hand, a Ruby Medallion laid under the stall (you step onto its front edge to talk to her) and an Indigo Garden on display beside it. She stands at her table, never wanders, and talks with her hands. Her name over her head is copper.
Her words are a first pass for Kris to go over: warm, with a light Jamaican touch. She welcomes you and tells you about her rugs, and when you ask for one: “I don’t trade for coins, mi dear. I trade for dyes. Bring me dyes, and you may choose any rug you like.” Ask where dyes are found and she hints: “In flowers, in berries, in the earth itself… One day you’ll find them.” She says goodbye with “Walk good, little one.” There is no trade and no quest yet.
Her look. The first version was made with Meshy on the fifth try (133 credits): a gentle lady with a wolf’s head and a real snout, grey and cream fur, amber eyes, a copper-red forelock, a turquoise dress to the floor with an orange-and-gold paisley border, a mustard sash and a beaded necklace. The long flowing hair didn’t come. Kris: “Zahra looks good — don’t lose her — but I did have in mind reddish-brown fur, and the long and wild hair, the orange colour is fine, probably with some feathers or things woven into the hair perhaps, and a flatter snout — more wolfish than fox’ish.” A second version is being made now. The first is kept to one side “for possible use as something else.”
Everything on a cell at once
Kris: “When you walk over a cell that has stuff on it, change it so you pick up ALL the stuff, not just some of it — this will mean you can sometimes pick up multiple kinds of different things from a cell, and so the animation to show that going into your bag will need to support that (I guess only up to 9 total possible different things on a cell).”
Until now a step onto a cell took one thing and left the rest. Now it takes everything. One kind looks exactly as before. Several kinds show as one group beside the sack, a tile each with its count — up to nine, in two rows, clear of the joystick and the health bar — and go in one after another, nearest first, the sack swelling for each. A first-ever find still gets its own “You found…” card, one at a time, and the whole haul flies in after the last card. The tiles are still pictures rather than turning models, so nine at once cost a phone almost nothing.
A full bag leaves things on the ground. The bag holds 999 of each element. Before, a pickup at the top vanished into a count that stood still. Now what doesn’t fit stays on its cell for anyone to pick up, and the game says “No room in your bag”. That changes a choice from September (to show the flight into the sack even at 999), because now the thing really is still on the ground. Kris: “Good call on the full bag.”
Round two, the same afternoon
Kris played round one on his phone and gave the rest of his brief by voice: “I want a red and a green and a blue… each of them a hexagram… the abyssal water I want to go”, the well that “spills out a whole bunch of dyes… any number between 5 and 12”, Zahra wanting “five dyes, doesn’t matter what colour, for a rug, and you get to choose the rugs by name”, and Hob, who “seems too small and not kind of impactful.”
The dyes, and the Moon Well that spills them


Three dyes, red, yellow and blue — the dyers’ primaries, so mixing can make the rest one day. Each is a hexagram of water over something: Red Dye is Water over Fire (63, the dye pot on the flame), Yellow Dye Water over Earth (8, rain soaked down through yellow earth), and Blue Dye Water over Water (29, the deep indigo vat — the hexagram that was Abyssal Water, the well’s old reward). They come as round glazed jars with a cork, the stoppers different shapes, so they are told apart even without colour.
Win Cinder Hollow and the Moon Well — rebuilt as Kris asked, “a little bit of stone texturing… a little bit larger… a little bit more special and epic”, in pale moonstone with glowing water and a crescent moon on its arch — bursts out five to twelve dyes, each of the three at random, over the cells around it. The round starts again once the last one is taken.
Madame Zahra’s trade, and version two

Bring her five dyes, any colours, and she asks “Which rug?”. Kris didn’t want “a weird option tree”, so this is a new way for a character to offer many replies: her words on the left half, the choices down the right, and the way out — “None, actually. Bye” — at the bottom-left. It shows whenever a line has more than three replies. On his phone the single column of twelve was too thin (“those rug buttons look weird — let’s go the 2 column option”), so it is two columns of thumb-sized rows, each with a picture of the rug. The rug goes straight into your arms.
Where dyes come from depends on how far you are. Before Cinder Hollow is open she says they are hard to come by: win Golem Hollow and gather three of the Grove Tree’s Life Seeds, and the door opens. After, she sends you through Golem Hollow’s other door to save the Moon Well.

Her second look has the broad wolf’s head and the long, wild orange hair Kris described, with beads in it. Meshy painted a fox’s orange face every time, so the reddish-brown fur was recoloured by hand, and it gave no feathers. Kris: “the new Zahra is perfect!” — and of the first: “keep the other model — she might be Madame… Zahra’s sister — coming in later.”
Hob, bigger

Hob is a head taller and sits at a carpenter’s bench three cells long — planks, a mallet, a saw, a try square, a rack of chisels and a vise — with three chests behind him that are part of the scenery. Zahra came down a touch, so the two of them stand as a pair of grown-ups over the children who shop with them.
Water, hurt, and the fixes from the phone
Kris asked for a splash on stepping into water — bigger when running — and ripples while wading (“the water animation is perfect”). It costs nothing while nobody is in water and two draw calls while anybody is. Taking damage now reddens the edges of the screen and pulses the health bar, so lava is no longer “a little bit subtle”; standing in it throbs rather than turning the screen red.
From the phone, too: carried furniture is a big armful (“comically large but also not clip”); something picked up just goes from the ground into your arms — a rug only after it has rolled itself up; a walk to something out of reach goes round chests and tables, or says it can’t get there; the Put-down button shows a chest for a chest and a crate for anything else; the bag’s grid scrolls wherever you drag it; and the Spells tab is cards a third wide, centred:

Windows in the house

The cottage has a window at each end, and now the room inside does too (Kris: “come up with a good solution for the pole that is currently in the middle of the wall”). The single post that stood near the middle of each side wall is now two, one each side of the window, with a beam across the top. The timber frame of the wall has become the window’s frame. Moonlit night shows in the glass.
What comes next
None of this is live. It ships with the houses (deliverable #41) and the villagers, after Apple approves 0.2.2. Still to come: where furniture comes from for players, and Zahra’s sister.
Sources & artifacts
-
docs/handoff/furniture.md -
docs/handoff/rug-seller.md -
docs/handoff/pickup-all.md -
game/shell/kinds.js -
game/world/carry_rules.gd -
game/world/placement_rules.gd -
game/world/client/objects/furniture/ -
game/world/client/objects/rugs/ -
game/world/client/bodies/rug-seller/ -
game/content/dialogue/rug-seller.conv -
game/director/src/villagers/furnish.ts -
game/world/pickup_rules.gd -
docs/handoff/well-and-dyes.md -
docs/handoff/dialogue-picklist.md -
docs/handoff/water-and-hurt.md -
game/world/client/bodies/zahra/ -
game/world/mini_game_rules.gd
← related epic: world-map-and-portals
Also available as raw markdown.



