# What you can't build

Most ideas are buildable. Hunger, infection, reputation, seasons, smithing, a curse that worsens
at night: those are [fields](/docs/fields) and [hooks](/docs/hooks). This page lists what
isn't, so you don't build something that saves fine and never works.

## Hard edges

- **Hooks fire at a fixed set of moments.** The [hook list](/docs/hooks) is closed. If you need
  "the moment a trade completes" or "when this line of dialogue is spoken", there's nothing to
  attach to. The nearest workable shape is usually `onTurnEnd` plus a field, which fires near
  the moment, not at it.
- **No real-world time.** Game time only moves forward, on the game's clock. `$.passTime` and
  `$.startTimer` are all the scheduling there is. Nothing happens while nobody is playing. A
  garden can't grow overnight while the player is logged out, but it can grow a day's worth when
  they come back.
- **Nothing outside the game.** No network calls, no files, no other sessions, no external APIs.
- **No new interface.** No new panels, buttons, screens or minigames. Rules write fields and
  narration; how the game is displayed isn't authorable beyond fields, tiers and the HUD.
- **Narration is prose.** `$.narrate` tells the narrator something happened and it comes back
  as sentences. It won't show an exact number, a table, or a UI element.
- **Generated content stays in the session.** A [generator](/docs/generators) can create
  locations, items and creatures during play, but only for that session, and it can't edit
  plugins or delete anything.

## Soft edges: possible, just not how you said it

- **"Every N seconds"** → every turn, or every N in-game minutes.
- **A new kind of thing** (a rank, a vehicle, a business) → usually a field on something that
  already exists.
- **Replace core maths** → check the [seams](/docs/seams) first. You can't add one, but the one
  you want may be there.
- **A procedural dungeon** → a generator on `onMapEdge`.

## When it really is past an edge

Stop. A near-miss system is worse than none: it costs credits, validates cleanly, and the first
sign it never worked is a playthrough where nothing happens.

Then bring it to **[Discord](https://discord.gg/uxz74KWfAG)**. The hooks, steps and seams all
grew from people asking for something that wasn't there. The most useful request names the
moment you needed and what you wanted to happen then.
