Unload then load passengers didn't work #2

Closed
opened 2026-08-22 16:11:55 +00:00 by Jesse.Markowitz · 3 comments
Owner

In the included game, note that the sparrow (with two loaded coaches) pulled into the station. There are two passengers on the platform. Four porters. My thought was to unload two and load two. I never get the chance to load the last two.

Also, check out my packing sheds. Big time! Now if I could just get a train to haul that produce away!

In the included game, note that the sparrow (with two loaded coaches) pulled into the station. There are two passengers on the platform. Four porters. My thought was to unload two and load two. I never get the chance to load the last two. Also, check out my packing sheds. Big time! Now if I could just get a train to haul that produce away!
Author
Owner

Reproduced and diagnosed from the save. Not fixed — it needs a ruling, and there are three ways out.

What the save holds. The Sparrow pulls into the Terminal with two loaded coaches, two passengers wait on the platform, four porters are unused, and only one of the four intended actions can be taken. The Division Yard holds 1 empty coach and 0 loaded, while the Classification Yard holds 4 loaded and 4 empty that cannot come back.

The engine is not deviating from the rules. §9.2 discards the white coach into the Classification Yard on boarding, and draws the white coach from the Division Yard on de-training. §2.2 returns the Classification Yard to the Division Yard only when the Division Yard is empty. All three are implemented exactly as written.

The problem is the interaction: a single global refill condition, over a pile holding six commodities with very different demand, where coaches are consumed by both halves of every passenger cycle. Traced over this game, the coach pool runs from 8 loaded / 8 empty down to 0 loaded / 1 empty by Day 5. Passenger operations starve themselves.

Three ways out, and it is your call which:

  • (a) Refill when the Division Yard is dry of the type-and-state being asked for, rather than dry of everything.
  • (b) The same trigger, but return only the cars of that type.
  • (c) Leave the rules alone and raise the coach count in the rolling-stock supply.

(a) and (b) are rules changes and should be measured over 400 paired seeds before shipping. (c) is a dial, not a rule, and is reversible.

Note that v0.4.9f's coach-count change from #7 (Crack Limited 3→2) pushes in the right direction but does not solve this — the drain is structural, not a matter of how many coaches a train carries.


The second half of this report is an unambiguous bug, and is separate from the ruling above.

You were not merely blocked — you were given no reason, and the button simply was not there. The "why nothing is moving" panel (impediments() in src/sim/narrate.ts) opens with a filter that skips every facility that is not freight, so it has never had anything to say about a platform. Whichever way the supply question is settled, a blocked passenger facility should explain itself. That part will be fixed on its own.

**Reproduced and diagnosed from the save. Not fixed — it needs a ruling, and there are three ways out.** **What the save holds.** The Sparrow pulls into the Terminal with two loaded coaches, two passengers wait on the platform, four porters are unused, and only one of the four intended actions can be taken. The Division Yard holds **1 empty coach and 0 loaded**, while the Classification Yard holds **4 loaded and 4 empty** that cannot come back. **The engine is not deviating from the rules.** §9.2 discards the white coach into the Classification Yard on boarding, and draws the white coach from the Division Yard on de-training. §2.2 returns the Classification Yard to the Division Yard only when the Division Yard is **empty**. All three are implemented exactly as written. The problem is the *interaction*: a single global refill condition, over a pile holding six commodities with very different demand, where coaches are consumed by **both** halves of every passenger cycle. Traced over this game, the coach pool runs from 8 loaded / 8 empty down to 0 loaded / 1 empty by Day 5. Passenger operations starve themselves. **Three ways out, and it is your call which:** - **(a)** Refill when the Division Yard is dry *of the type-and-state being asked for*, rather than dry of everything. - **(b)** The same trigger, but return only the cars of that type. - **(c)** Leave the rules alone and raise the coach count in the rolling-stock supply. (a) and (b) are rules changes and should be measured over 400 paired seeds before shipping. (c) is a dial, not a rule, and is reversible. Note that v0.4.9f's coach-count change from #7 (Crack Limited 3→2) pushes in the right direction but does not solve this — the drain is structural, not a matter of how many coaches a train carries. --- **The second half of this report is an unambiguous bug, and is separate from the ruling above.** You were not merely blocked — you were given no reason, and the button simply was not there. The "why nothing is moving" panel (`impediments()` in `src/sim/narrate.ts`) opens with a filter that skips every facility that is not freight, so it has **never** had anything to say about a platform. Whichever way the supply question is settled, a blocked passenger facility should explain itself. That part will be fixed on its own.
Author
Owner

The Division Yard limits should stay as they are. Yes, it is possible to run out - that's part of the strategy. On my last run, I got a heavy freight early and literally stuffed an industry with cars, picking up and setting out. When I realized I was running out of cars, it was time to add a new industry to my station area. Likewise, if someone has a tipple and you put one in too, everyone runs short. So maybe you shouldn't. In fact, if you have a tipple and aren't done unloading, I might just jam some hoppers into a train so you can't get at them. And when I build trains solitaire, on freights I don't need, I'll load it with cars I don't need.

It's part of the strategy fun. Like, back when the express carried three coaches and I didn't have a terminal, I wouldn't run it since it would just burn passengers my station or depot needed. That's why I bumped up the sparrow - everyone car get passengers off and on that thing, all down the line.

The Division Yard limits should stay as they are. Yes, it is possible to run out - that's part of the strategy. On my last run, I got a heavy freight early and literally stuffed an industry with cars, picking up and setting out. When I realized I was running out of cars, it was time to add a new industry to my station area. Likewise, if someone has a tipple and you put one in too, everyone runs short. So maybe you shouldn't. In fact, if you have a tipple and aren't done unloading, I might just jam some hoppers into a train so you can't get at them. And when I build trains solitaire, on freights I don't need, I'll load it with cars I don't need. It's part of the strategy fun. Like, back when the express carried three coaches and I didn't have a terminal, I wouldn't run it since it would just burn passengers my station or depot needed. That's why I bumped up the sparrow - everyone car get passengers off and on that thing, all down the line.
Author
Owner

Closed by v0.7.1 (4414476) and v0.4.9g (9735468) — but not the way this report
implies
, so it's worth reading what actually changed.

The engine was not deviating from the rules. I traced your save step by step. §9.2 discards the
white coach into the Classification Yard on boarding and draws one from the Division Yard on
de-training; §2.2 returns the Classification Yard only when the Division Yard is empty. All three are
implemented exactly.

What bites is the interaction. Both directions of porter work — loading and unloading — consume
coaches one-way into Classification, and the refill condition is a single global one over a pile of
~60 cars, so they don't come back. Over your game the coach pool runs 8 loaded / 8 empty on Day 1 to
0 / 1 by Day 5, with eight coaches stranded in Classification behind everything else. That's why the
fourth action wasn't there.

Your ruling on that is that the shortage stays — "it is possible to run out, that's part of the
strategy" — so the three balance options I'd written up (refill per type-and-state, return only that
type, or simply raise the coach count) are all declined rather than deferred.

What was unambiguously a bug is that the game said nothing. A Porter action that can't be taken
is simply absent from the menu, and the "why nothing is moving" panel opened by skipping every
facility that isn't freight — so a platform had never had anything to say for itself. You weren't
merely blocked; you were given no reason.

A Passenger Facility now reports both directions: passengers standing with no train, a train whose
card bars Porters from working it, a Terminals-only train at a lesser Office, every coach already
full, the red slots full, the same-district rule, and the coach shortage itself — that last one
naming how many coaches are sitting in Classification and the condition that brings them back,
because a yard visibly full of cars that won't yield a single coach is the state that looks like a
broken game. The text comes from the engine's own predicate, so what's on screen is the rule that
actually refused rather than a second guess at it.

A second defect fell out of fixing it: a Passenger Facility rides on the office card and has no
facility geometry of its own, so every passenger row would have read facility 0,0 next to a
freight row saying mineTipple 1,-3. It's named by the Office Area's tier now.

One caveat if you re-open that save (station-master-seed947338225-day5(1).json): it's a
v0.4.9-line recording and stops at intent 250 of 323 on the 0.7 engine, because #4, #6 and #7 changed
the rules its later intents were recorded against. That's expected divergence, not a save-format bug
— a replay reproduces a game from decisions, and those decisions no longer mean the same thing.

(Your packing sheds were indeed big time.)

Closed by **v0.7.1** (`4414476`) and **v0.4.9g** (`9735468`) — but **not the way this report implies**, so it's worth reading what actually changed. **The engine was not deviating from the rules.** I traced your save step by step. §9.2 discards the white coach into the Classification Yard on boarding and draws one from the Division Yard on de-training; §2.2 returns the Classification Yard only when the Division Yard is empty. All three are implemented exactly. What bites is the *interaction*. Both directions of porter work — loading and unloading — consume coaches one-way into Classification, and the refill condition is a single global one over a pile of ~60 cars, so they don't come back. Over your game the coach pool runs 8 loaded / 8 empty on Day 1 to 0 / 1 by Day 5, with eight coaches stranded in Classification behind everything else. That's why the fourth action wasn't there. **Your ruling on that is that the shortage stays** — "it is possible to run out, that's part of the strategy" — so the three balance options I'd written up (refill per type-and-state, return only that type, or simply raise the coach count) are all declined rather than deferred. **What was unambiguously a bug is that the game said nothing.** A Porter action that can't be taken is simply absent from the menu, and the "why nothing is moving" panel opened by skipping every facility that isn't freight — so a platform had never had anything to say for itself. You weren't merely blocked; you were given no reason. A Passenger Facility now reports both directions: passengers standing with no train, a train whose card bars Porters from working it, a Terminals-only train at a lesser Office, every coach already full, the red slots full, the same-district rule, and the coach shortage itself — that last one naming how many coaches are sitting in Classification and the condition that brings them back, because a yard visibly full of cars that won't yield a single coach is the state that looks like a broken game. The text comes from the engine's own predicate, so what's on screen is the rule that actually refused rather than a second guess at it. **A second defect fell out of fixing it:** a Passenger Facility rides on the `office` card and has no `facility` geometry of its own, so every passenger row would have read `facility 0,0` next to a freight row saying `mineTipple 1,-3`. It's named by the Office Area's tier now. One caveat if you re-open that save (`station-master-seed947338225-day5(1).json`): it's a v0.4.9-line recording and stops at intent 250 of 323 on the 0.7 engine, because #4, #6 and #7 changed the rules its later intents were recorded against. That's expected divergence, not a save-format bug — a replay reproduces a game from decisions, and those decisions no longer mean the same thing. (Your packing sheds were indeed big time.)
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Jesse.Markowitz/station-master#2