Qwazy Land

World & biomes

Outside, the dungeon, auto-doors, portals — how the world is shaped, where to find what, and how to move between biomes.

Qwazy Land is split into a handful of biomes — small, focused maps each with their own tile palette, monster pool, and flavour. The default biome is outside: a 128×128 tile field of grass, fences, scattered stones, a few NPCs, and the spawn region for new characters.

Biomes #

| Biome | What it is | |------------|-------------------------------------------------------------------------------------------| | outside | The starter field. Goblins, bees, a banker, a merchant, a quest-giver, scattered chests. | | dungeon | Procgen maze, recursive-backtracker. Higher-tier monsters; deeper rewards. Resets on every server restart. | | (others) | Auxiliary maps via auto-doors — outside2, outside3, etc. — for events + experiments. |

The outside biome is the world's source-of-truth definition stored in worlds/outside.json (checked into the repo). Edits go through git. The dungeon is rebuilt fresh on every server boot — there's no point banking it.

Moving between biomes #

Two mechanisms:

Spawning #

A new character spawns at the outside biome's designated spawn region (a small rectangle near the world centre). On reconnect, your character spawns at their last persisted position — unless that position is now inside an unwalkable cell (e.g. someone moved the world geometry while you were gone), in which case the server warps you to the spawn region.

What's where #

Day, night, weather #

A 60-second day-night cosine cycle dims and brightens the world. Weather rolls between clear / rain / snow on its own schedule; admins can pin it for testing. Snow accumulates on the ground as a translucent overlay until weather rolls back to clear.

In code #

Worlds + tile painting + the geometry pipeline: design/architecture.md + design/rendering.md. Per-biome JSON schemas: worlds/<name>.json.