terraces

Explains terrace level steps, cliff tiles, and their rendering in the overworld.

2|1|Updated Jun 28, 2026
One-click install
npx skills add https://github.com/lxsmnsyc/overwander --skill terraces-lxsmnsyc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: terraces
Source: https://github.com/lxsmnsyc/overwander/tree/main/.claude/skills/terraces
Command: npx skills add https://github.com/lxsmnsyc/overwander --skill terraces-lxsmnsyc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It documents how elevation steps between terrace levels work in the procedurally generated overworld, so changes to walkability, ground placement, or board rendering stay consistent with the cliff rules. ## Core Features & Use Cases - Cliff detection rules: Defines how levelAt and isFace identify cliff cells, including diagonal neighbours and 2x2 block constraints. - Seam and pass logic: Explains when water, roads, routes, and natural passes cut through cliffs, and when a face stays unwalkable. - Rendering guidance: Describes how both the flat board and the laid-back board draw cliff tiles using the biome's face terrain autotile. - Use Case: When adding a new landmark placement rule, consult this Skill to exclude face cells via Chunk.getFaceCells() so nothing spawns on a cliff. ## Quick Start Ask how terrace levels and cliff tiles work before changing walkability, ground placement, or board drawing code in the overworld.

Frequently Asked Questions about terraces

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect cliff tiles in a procedurally generated overworld?▼

A cell is a cliff face when it stands higher than any of its eight neighbours, including diagonals, as implemented by isFace in src/overworld/cliff.ts. Levels come from levelAt in src/overworld/terrace.ts, which only counts 2x2 blocks standing at least that high.

How do I keep spawns and landmarks off cliff tiles?▼

Exclude the cells returned by Chunk.getFaceCells() from any placement logic. Nothing is placed on a face, seamed or not: no scenery, landmarks, spawns, phenomena, or player starts.

Can roads or water cross a cliff face?▼

Yes. Roads, routes, and water on a face are always seams, so streets are never cut by cliffs and water at a drop becomes a fall. Natural passes also seam faces every twenty cells along a cliff when they lead through to lower ground.

How should a 3D board render cliff elevation steps?▼

The laid-back board draws the bottom row of the cliff ring autotile, rotated so the low side reads as south, and sinks every quad corner to the lowest of the four meeting cells. The WebGL scene and canvas fallback follow the same rule.

Why is water never placed at the lip of a dry drop?▼

The lip rule in src/overworld/ground.ts dries water that would stand at a dry drop's edge, so a pool never sits at a cliff. Water only forms a fall when the lower ground beside it, diagonals included, is also water.