No active sessions yet.

No games yet.

No conversations yet.

No characters yet.

What you can't build

The edges of the rules system, and what to do when your idea is past one.

Most ideas are buildable. Hunger, infection, reputation, seasons, smithing, a curse that worsens at night: those are fields and 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 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 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 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. 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.