Documentation · v1.0

Read the
manual

Quick start, the generator, partition modes, biome distribution, layers, export formats, runtime shell, and keyboard shortcuts.

Quick start

1. Download & launch

Download the latest release. Unzip anywhere. No installer needed. Launch WorldSlate.exe.

2. Create a project

From the launcher, pick one:

  • New Project — name it, define biomes, point at a sprites folder (or skip and use the bundled 1200+ SVG library), set up zones.
  • Open Project — load an existing .worldslate file.
  • Template — load a bundled starter and explore immediately.

3. Design your world

On the World Gen screen, the sidebar groups every knob by topic — Quick Start (a starter preset), then World, Distribution, Biome Shape, Rivers, Lakes, Features, Outer Rings, Zones, Draw Order, Size. Pick a preset to begin, dial in the details tab by tab. Click Generate to roll the world; click again any time to reroll with the current settings.

Tip: keep the Size pill at its defaults while you're dialing in biome rules and partition styles — bigger canvases mean slower regens. Crank it up once the design feels right; deterministic seeds preserve your intent when you scale.

4. Place biomes by intent

For each biome, set a weight (relative frequency) and a spatial bias (N/S/E/W/diagonals/Center/Edge). The sampler honors your intent across every seed. "Ice in the north" stays in the north no matter how you reroll.

5. Hand-place landmarks

Switch to the Editor screen. Use the manual layer for boss arenas, towns, story locations. These survive seed changes; authored, not generated. Use brush, fill, stamp, and path tools to scatter or place individual obstacles.

6. Open in your engine

File → Export (Ctrl+E). Pick "Open in Godot" or "Open in Unity." A complete runnable starter project appears with a walkable player, chunk streaming, world map, and minimap with fog-of-war pre-wired. Press F5. You're walking around your world.

The runtime arrives as .gd (Godot) or .cs (Unity) source, not a binary plugin. Read it, modify it, ship it inside your game. Licensing summary →

Project file (.worldslate)

One file per project. JSON throughout, version-control friendly. Carries every world-gen knob, biome palette + rules, layer list, hand-placements (POIs, paths, paint strokes), zone catalog, and asset-folder references. Edited entirely through the WorldSlate UI. No manual JSON tweaks needed.

Key fields

FieldPurpose
world_genEvery world-gen knob (canvas size, continent shape, partition mode, river / lake / boundary / center / outer-ring config, seed, etc.).
biomesBiome palette: stable id → { name, name_key, ground_color, … }. Renaming changes the friendly name; the id stays stable.
biome_rulesPer-biome distribution rules: weight (0–100), bias direction, bias strength.
boundary_rivers / free_rivers / outer_rings / zonesWorld-gen feature lists authored on the World Gen screen.
layersLayer definitions. Each has a key, name, behavior (algo or manual).
layer_dataPer-layer placements (chunk-keyed). Hand-placed obstacles, fills, stamps, etc.
poi_markers / custom_paths / paint_strokes / biome_paintHand-authored vector content from the Editor screen tools.
zone_typesEditor-side zone-type catalog (id, name, color, default radius, behavior).
asset_sources / asset_overridesSprite-folder references and per-variant bake overrides. Managed via the Asset Library screen.
cell_catalogHeatmap-in-OBB data driving algorithmic scatter at Apply time.
scatter_seed / lock_scatter_to_worldDeterminism state for algorithmic scatter.

The generator

One unified generator. No swappable engines, no plugin maze. The same pipeline produces every world; what changes is the partition mode and per-biome distribution rules.

Partition modes (5)

Partition mode decides how the world is sliced into cells. Biome rules decide what goes in each cell.

ModeDescription
CVT cellsCentroidal Voronoi Tessellation. Organic, equal-area cells with smooth edges. Default.
Radial wedgesAngular slices from the center. River-sector layouts.
Horizontal bandsStrip layout running east–west. Latitude-style worlds.
Vertical bandsStrip layout running north–south.
Concentric ringsDisc plus annuli. Moat/island compositions or center-out difficulty curves.

Biome distribution

Per biome, you set:

  • weight (0–100) — relative frequency. 0 excludes; default 1.
  • bias_dir — N / S / E / W / NE / NW / SE / SW / Center / Edge / null.
  • bias_strength (0–1) — 0 disables bias, 1.0 strong skew.

The sampler picks per cell from a weighted pool, modulated by a spatial-match score against the bias direction relative to the world bounds. Knob slides reshuffle partition cells; biome intent stays intact because bias is in world space, not cell index.

Rivers, lakes, boundary

Boundary rivers (spokes + spans) and free rivers (cartesian endpoints) are independent authoring surfaces. Lakes have count, size, wobble, and river-lake percentage knobs. The boundary supports moat width, island radius, corruption width, and void width.

Draw order

When overlays collide (ocean covering lakes, lakes covering rivers, custom biome paint over either), the Draw Order pill in the World Gen sidebar decides who wins. Biomes higher on the list draw above biomes below. Drag to reorder; + Add Biome brings any biome into the list. New projects ship with ocean → lake → river (ocean wins, lakes above rivers); biomes not listed render unconditionally and can be overwritten by later passes.

Algo vs manual layers

Layers split into two behaviors:

  • algo — obstacles authored via brush/fill/stamp tools. Algorithmic scatter learns the density pattern from your brushed examples and reproduces it across every matching biome cell. Ships in v1 marked experimental; toggle on in Settings → Experimental.
  • manual — absolute placements with explicit positions. Seed-independent. Wins all conflicts at runtime.

New projects ship with one of each by default. Add more of either kind any time.

Export formats

FormatOutputUse case
Open in GodotComplete Godot project with the runtime shell + generator as .gdOne-click playable starter game
Open in UnityComplete Unity project with the runtime shell + generator as .csSame, native C#
WorldSlate Project.worldslate — world recipe + every placement (POIs, paths, paint strokes) in a single fileShare with collaborators; re-open and remix in WorldSlate
Biome PNGIndexed image of biome regionsVisual reference, prints, custom pipelines
Placement CSVFlat tablesSpreadsheet or custom tooling

What ships with your game

"Open in Godot" and "Open in Unity" don't produce a sealed export. The complete world generator ships as readable source in your project, alongside the runtime shell. You can read every line, modify any pass, and rebuild.

Godotaddons/worldslate/

  • shell/ — player, camera, chunk view, minimap, tab map, map reveal (fog-of-war), POI / zone indices
  • world_gen/ — generator (compose + 9 passes: canvas, boundary, zones, partition, classify, outer ring, lakes, rivers, center)
  • math/ — noise, Voronoi, Delaunay, splines, polygonize, geometry
  • data/ — recipe loader, world-data adapter, sprite resolver
  • runtime/ — cell catalog, scatter, scatter math (deterministic algo placements)
  • render/ — palette
  • skins/ — four bundled skin .tres files (Loom Dark / Light, Atelier Dark / Light)

UnityAssets/Plugins/WorldSlate/

  • Shell/ — player, camera, chunk view, minimap, tab map, map reveal, POI / zone indices
  • Runtime/ — recipe loader, world-data adapter, sprite resolver, plus Runtime/WorldGen/ (the full generator) and Runtime/Scatter/ (cell catalog + deterministic scatter)

Players can hit "new world" in your shipped game; the live generator runs with a fresh seed.

Runtime shell

Every export ships with the same runtime shell:

  • Walkable player — placeholder controller, drop in your own.
  • Chunk streaming — regions load and unload around the player automatically.
  • World map — press Tab, see the whole world.
  • Minimap with fog-of-war — corner reveal as the player explores. Persists across sessions.
  • Zone flags — query worldslate.is_in_zone(pos, "no_spawn") from your code.
  • POI markers — query by name or kind for landmarks and quest hooks.

Keyboard shortcuts

KeyAction
BPaint tool (scatter brush)
VSelect tool
GFill tool (Poisson-disc circle)
PPath tool (waypoints)
MBiome paint (raster)
KPOI tool (point markers)
TStamp tool (prefab clusters)
RRegion fill (flood-fill biome region)
19Switch active layer
TabToggle UI chrome
Ctrl+Z / Ctrl++ZUndo / Redo
Ctrl+SSave
Ctrl+Shift+SSave As
Ctrl+EExport dialog
Ctrl+ASelect all (in Select tool)
Ctrl+DDeselect
Ctrl+0 / Ctrl+1Fit to view / actual size
DelDelete selection
MMB dragPan
ScrollZoom (cursor-centered)

Every shortcut is rebindable from Settings → Keyboard Shortcuts. Overrides save to your user preferences and survive restarts.

Roadmap

Solo-dev pace. The items below are committed work; bigger v2 ideas get hashed out in the Discord.

v1.0 — launch

What ships now: five screens, five partition modes, eight editor tools, runtime shells for Unity and Godot, 1200+ public-domain SVG sprites, English + Spanish UI, Windows-only editor.

v1.1 — quick wins (first weeks)

  • More starter templates. Adding to the sixteen that ship at launch. Community-requested themes get queued first.
  • Bug-fix passes driven by launch feedback.

v1.2

  • Linux build.
  • Algorithmic scatter graduates from experimental. Once it's hardened against more workflows it stops being gated behind the Experimental menu and ships default-on for new projects.
  • More partition modes. Candidates under evaluation: hex grid, Perlin-warped CVT, hybrid bands + rings.
  • Ground textures and shaders. Per-biome surface material fills (procedural noise, gradient, grain) plus per-biome shader parameters.

v1.3+

  • macOS build.
  • Free Lite tier.
  • More export formats. Candidates: GameMaker, Defold, Phaser, Tiled .tmj. Priority follows which engine communities show up first.
  • Tutorial set + cookbook. Short videos and written walkthroughs covering the common end-to-end flows.
  • Algorithmic fill (knob-driven). A new high-level screen for the algo pipeline. Density knobs per (biome × placement type) drive a world-wide fill in one pass.