When a Day Became a Story#

At 15:50, old Kuzma is lying feverish on the Dno stairs. He whispers that he will pay fifty kopeks to anyone who brings word of Baba Ustinya.

You find her in the znakharka’s cellar and tell her that Kuzma is ill. She pulls her shawl tight and says, “Coming!”

When you return, Kuzma is still where you left him. Ustinya is on her way, the contract is complete, and he pays from his own money.

None of this is remarkable by the standards of a finished role-playing game. For Satisfy, it marked the moment when a collection of working mechanics began to behave like one day in one world.

A town that could do things#

Version 0.7.0 gave the town a livelihood. Kuzma and Mitka could make the Watch’s order of 130 crossbow bolts at a real bench. The order had an owner, a deadline, a full price and a reduced late price. If neither craftsman delivered it, Pakhomov eventually came to collect it himself.

Kuzma could also fall ill. The course was not a single flag named “sick”: he could become unwell, worsen, develop a fever and be found at the bench, on the stairs or in the yard. Mitka noticed and tended his master. Baba Ustinya could hear about it, travel to him and treat him.

Speech gained distance and privacy. A yell could cross a busy room, carry along a line of sight and be heard one place away. A whisper reached its listener while bystanders saw only that something had been whispered. If a character heard a yell without seeing its source, the memory honestly attributed it to an unknown voice.

Contracts became needs rather than cards pinned permanently to the scenery. They named the person who wanted something, the action required, the deadline, the reward and the consequence of failure. A finished contract stayed finished; one whose need had passed was withdrawn. Secret requests remained secret. Payment came from real assets and had to be collected from a living owner in person.

Every part worked. Then we played the day and discovered that working parts do not automatically make a story.

When the mechanics did not add up#

The first full session had labour, illness, rumours, contracts and a killing. It also had the dramatic structure of a municipal inventory.

Events occurred beside one another, but not always because of one another. A character could know that Kuzma was ill without having a useful way to act on it. The noon shot could happen as if nobody’s presence mattered. A murder, a bolt and a suspect could all exist in the same town without forming a path a player could actually follow.

That failure was useful. It showed the difference between simulating facts and staging a playable day. The simulation still had to remain authoritative—no invisible storyteller was allowed to rewrite the world after the fact—but the scenario needed causal joints: places where observation, knowledge and action could change what happened next.

Version 0.7.1 added those joints.

A request with a body#

Kuzma’s request for a healer is not posted on the tavern board and not announced to the whole town. It begins with an ill man asking for help. The player must hear it, take it on, reach Ustinya and tell her what happened. She then travels through the same streets as everybody else.

This is an excerpt from a deterministic v0.7.1 session. The long room descriptions are omitted, but the commands and responses are the ones the game produced:

> accept the contract for word of the healer
— 15:50 —
You take on the contract for word of the healer
Old Kuzma whispers: “Whoever brings me word of Baba Ustinya gets fifty kopeks.”

> tell Baba Ustinya about Kuzma
— 16:20 —
You say that old Kuzma is ill
Baba Ustinya’s face turns stern.

Contract done: The contract for word of the healer
Reward: 50 kopeks
Collect the reward in person from old Kuzma.

> wait
— 16:30 —
Baba Ustinya: “Coming!” — and wraps her shawl.

> go to the Dno stairs
— 16:50 —
Old Kuzma judges that you have fulfilled the contract for word of the healer
Old Kuzma pays you 50 kopeks for the contract for word of the healer
Old Kuzma lies in a fever.

The request exists because Kuzma needs Ustinya. If he is treated another way, the need passes and the request goes with it. If he dies, he cannot pay. The fifty kopeks do not materialise in a reward window; they leave Kuzma’s purse when the player returns to him.

The result is still a small chain. It merely has the useful property that every link is also a fact in the world.

The shot can wait#

The noon killing received the same treatment. Yashka Kosoy waits for a moment without a witness on the bell tower roof. If somebody is there, he does not shoot in front of them. If no opening appears by 12:40, he never takes the shot.

This means that a player can prevent Savva Gromov’s death without selecting a “save Savva” quest or passing a scripted dialogue check. Being in the right place is already an action the simulation understands. The consequence is equally physical: Savva and his wife spend the evening in the tavern instead of the day continuing along the murder branch.

If the shot does happen, Yashka’s later behaviour depends on what has become known. Being named, being seen on the roof or learning that the widow’s contract has been taken sends him towards the mast. Otherwise he hides in the tavern, collects his payment and boards the 18:00 airship. A player who uses hold at departure time can keep him in town.

The timetable had acquired motives, which is a dangerous thing to let a timetable do.

Evidence instead of a quest marker#

Agafya Gromova will not pay merely because the player accuses Yashka. She asks, “How do you know?” A conclusion needs grounds.

The path begins with a red-thread bolt at the gate. The player can read it, ask Kuzma about it and learn whom he sold it to. Telling Agafya the buyer’s name gives her a supported claim; naming the killer after that can complete her contract. The clue is not a glowing object that advances a private quest state. It is evidence about an object, a maker and a sale, recorded as knowledge that characters can repeat.

There are other outcomes because the rest of the day does not pause for the investigation. The Watch’s bolt order still arrives even if Kuzma is ill: Mitka can deliver it, and Pakhomov fetches it after 20:30 if nobody else does. The full payment is three rubles; a late delivery earns two. Yashka can escape, be held or never commit the murder. The scenario is authored, but its resolution is not a single corridor.

The ending knows only what you knew#

At the end of the session, the epilogue does not reveal the canonical solution from above. It covers only threads the player encountered and describes them through what the character believes.

That constraint matters more than a dramatic summary. If the player never found the bolt, the game should not congratulate them for identifying it. If they heard a blurred account from somebody else, the retelling remains hearsay. The world may know more than the character, but the screen may not.

There are still rough edges. Two glances during one tick can merge into one observation. A sufficiently blurred hearsay thread may leave the epilogue with nothing useful to say. hold has no cost yet, so stopping a suspect is mechanically easier than it should be. Above all, this is one deliberately staged day, not proof that Satisfy can generate such stories indefinitely.

But the lesson survived the scenario: a living world does not become a story because many systems run at once. It becomes one when the systems leave consequences for one another—and when the player can step into those consequences without asking permission from a quest marker.

This follows A Company Is Not a Party, where physical position began to determine who could share a conversation. In v0.7, those conversations, needs and movements began to change how the day ended.