fix(ecology): invisible impassable nodes on all rock terrain — ore_outcrop art is not in the pack #290

Open
opened 2026-08-09 17:52:59 +02:00 by panda · 0 comments
Collaborator

A live tour of asterra found the player stopped dead on open, empty rock. Reproduced twice and traced to content, not code.

What happens

Walking north from (2288,4720) the character stops at (2288,4703) on a screen that is completely empty grey rock — no sprite, no cliff, no edge, nothing in any direction. The map's own verdict on every cell around it: mountain_rock, z 5, walkable, zero statics.

Why

content/ecology.txt:

species ore_outcrop_rock rocky_ground,mountain_rock full 10
stage ore_outcrop_rock full ore_outcrop 1 1
stage ore_outcrop_rock depleted ore_outcrop_depleted 1 0 900 full

blocksWalk 1, and MovementSystem refuses a step into nodes.BlocksWalkAt(target). But ore_outcrop and ore_outcrop_depleted are not in the pack (byte-scanned client/IsoMmo.Client/assets/assets.isoa; art/static/ has no such file either), and the assets rule says a missing static/<id> is simply not drawn. So the node exists server-side, blocks, and is invisible.

spacing 10 = one node per 100 cells across rocky_ground + mountain_rock, which is 6.1% of the continent including the whole massif and the mountain road.

stage temperate_pine stump temperate_pine_stump 1 0 1200 sapling is the same defect armed for later: that art is missing too, and the day a pine can be felled every stump becomes an invisible blocker across grass + northern_grassland.

Scope

  • Point both ore_outcrop_rock stages at art that is in the pack (mossy_boulder / mossy_rock are both present), or extract the real art.
  • Same for temperate_pine_stump (rotten_tree_stump / broken_tree_stump / split_stump all exist).
  • Close the class: a test that every stage art id in content/ecology.txt other than - resolves in the shipped pack — the content-drift guard just check-docs is for docs.

Definition of Done

  • Walking any straight 100-cell line across mountain_rock either arrives, or is stopped by something the screenshot shows.
  • A deliberately broken art id in content/ecology.txt fails the new test.
A live tour of `asterra` found the player stopped dead on open, empty rock. Reproduced twice and traced to content, not code. ## What happens Walking north from (2288,4720) the character stops at **(2288,4703)** on a screen that is completely empty grey rock — no sprite, no cliff, no edge, nothing in any direction. The map's own verdict on every cell around it: `mountain_rock`, z 5, walkable, zero statics. ## Why `content/ecology.txt`: ``` species ore_outcrop_rock rocky_ground,mountain_rock full 10 stage ore_outcrop_rock full ore_outcrop 1 1 stage ore_outcrop_rock depleted ore_outcrop_depleted 1 0 900 full ``` `blocksWalk 1`, and `MovementSystem` refuses a step into `nodes.BlocksWalkAt(target)`. But **`ore_outcrop` and `ore_outcrop_depleted` are not in the pack** (byte-scanned `client/IsoMmo.Client/assets/assets.isoa`; `art/static/` has no such file either), and the assets rule says a missing `static/<id>` is simply not drawn. So the node exists server-side, blocks, and is invisible. `spacing 10` = one node per 100 cells across `rocky_ground` + `mountain_rock`, which is **6.1% of the continent including the whole massif and the mountain road**. `stage temperate_pine stump temperate_pine_stump 1 0 1200 sapling` is the same defect armed for later: that art is missing too, and the day a pine can be felled every stump becomes an invisible blocker across grass + northern_grassland. ## Scope - [ ] Point both `ore_outcrop_rock` stages at art that is in the pack (`mossy_boulder` / `mossy_rock` are both present), or extract the real art. - [ ] Same for `temperate_pine_stump` (`rotten_tree_stump` / `broken_tree_stump` / `split_stump` all exist). - [ ] Close the class: a test that every `stage` art id in `content/ecology.txt` other than `-` resolves in the shipped pack — the content-drift guard `just check-docs` is for docs. ## Definition of Done - Walking any straight 100-cell line across `mountain_rock` either arrives, or is stopped by something the screenshot shows. - A deliberately broken art id in `content/ecology.txt` fails the new test.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo#290
No description provided.