maniator / maniator/verticopolis

[Bug]: People can float across disconnected floor sections and use unreachable stairs/escalators

Open
#647 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug modern needs-triage
Dominant language
TypeScript
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Build version

1.100.0

What happened?

People are not consistently respecting disconnected floor segments when calculating or following transportation routes.

In the provided Split Tower save, most upper floors are divided into two physically separate sections with no floor tiles connecting them. Despite this, people can:

  1. Appear to float or move through the empty space between the sections.
  2. Travel down stairs or escalators located on the opposite section of the floor, even though there is no valid horizontal path to reach that transportation.

This suggests that pedestrian pathfinding may currently treat an entire floor number as one connected node instead of tracking each contiguous walkable section separately.

Expected behavior: each contiguous floor section should be treated as a separate walkable component. A person should only be able to access transportation or destinations when a continuous valid pedestrian path exists.

Steps to reproduce
  1. Import and load the attached split-tower.vctower save.
  2. Let the simulation run at normal or accelerated speed.
  3. Observe people traveling within the split portions of the tower.
  4. Watch people whose destination or selected transportation is located on the opposite side of the empty floor gap.
  5. Observe one or both of the following:
    • A person appears in or moves across unsupported empty space.
    • A person uses or travels down stairs or escalators on the other floor section without a valid route to reach them.

The behavior may be easiest to see around floors where the left-side standard elevator and right-side stairs or service elevator overlap vertically.

Reproduction save details
  • File: split-tower.vctower
  • Tower name: Split Tower
  • Save schema version: 7
  • Tower rating: 2 stars

Attach the .vctower file directly to this issue by editing the issue and dragging it into this section, or add it in a comment below.

Relevant tower layout

Beginning on floor 2, the tower is split into two disconnected horizontal sections:

  • Left section: approximately x = 167–184
  • Empty gap: approximately x = 185–192
  • Right section: approximately x = 193–208

Transportation is distributed between the separate sections:

  • Stairs around x = 199 on the right section connect floors 0–15.
  • A standard elevator around x = 175 on the left section connects floors 15–45.
  • A service elevator around x = 199 on the right section connects floors 31–43.
Browser

PWA/Chrome

Platform

Pixel 8a

Game mode

Modern

Console errors

None reported.

Additional acceptance criteria
  • Pedestrians cannot cross gaps where no floor tiles exist.
  • Separate sections on the same floor are represented as separate pathfinding components.
  • Stairs, escalators, and elevators are accessible only from the floor section physically connected to their entrance.
  • Pedestrians do not float, teleport, or visually traverse unsupported space.
  • Invalid or stale routes recover safely after floor or transportation demolition.
  • The supplied save is added as a regression fixture or used to derive a smaller deterministic fixture.
  • Automated coverage verifies that a person on one disconnected section cannot select or use transportation on the other.
Regression test suggestion

Create a minimal tower containing two disconnected floor sections on the same floor, with a tenant or origin on one section and stairs or an escalator only on the other. Assert that no valid route is produced between the disconnected components and that the pedestrian never occupies coordinates inside the empty gap.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by loading the described Split Tower save and observing routes across the floor gap, then trace the pedestrian pathfinding and transportation-access logic involved. Use the proposed minimal disconnected-floor scenario as a regression fixture; done means pedestrians cannot cross the gap or use unreachable transportation, stale routes recover safely, and automated coverage verifies the separation.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
game-dev, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.