Skip to content

Grid Placement v6.3.0

Per-Session Unlocks

Filter the master placement catalog per session so each player only sees entries they can use.

Status
Current
Version
v6.3.0
Source updated
2026-10-29
Generated on
2026-10-29

6.3. These pages document the 6.3 release, where placeable is now entry (what changed) and PlacementOwner is deprecated (migration). Still on 6.2? Your version's guides ship inside the plugin itself, under addons/grid_placement/guides/; the 6.2 URLs on this site now redirect to this series.

Use per-session catalogs when multiple players/controllers or progression states share one game but should not have the same choices. Each PlacementSession carries its own catalog, and the selection UI populates from the active session's catalog.

  • GridPlacementBundle carries configuration (settings, templates, actions), not placement content — there is no bundle catalog.
  • PlacementSession.catalog defines what one session can use now.
  • Catalog filtering changes availability, not committed world occupancy or placement rules.

Setup: one catalog per session

Give each player/controller its own session with its own catalog resource. A common pattern is one master catalog duplicated per session, with entries removed or locked as progression changes:

var session:= PlacementSession.new()
session.grid_placement_bundle= preload("res://config/grid_placement_bundle.tres")
session.catalog= preload("res://catalog_player_one.tres")

host.register_session(self, session)

Give each player/controller its own session when availability differs. Sessions that build in the same world still share committed occupancy.

The registration above is the controller-driven shape: the controller owns the session and hands it to the host. A single-session scene needs no such call — assign the session to GridPlacementHost's session property and enable auto_configure, and the host registers it at _ready.

Locking individual entries

ScenePlacementEntry.catalog_locked marks a single entry as locked. The selection UI renders locked entries as locked instead of hiding them, so players can see what is not yet available:

entry.catalog_locked= true

catalog_locked lives on the entry resource itself. If two sessions share one catalog resource, locking affects both — use separate catalog resources when sessions need independent availability.

Terrain availability

Terrain choices resolve catalog-first through TerrainCatalogFilter: when the session's catalog has tile_entries, those are the canonical selectable terrains and the palette acts as display theme (icons + colors). When the session has no catalog, the palette entries are used as the legacy fallback.

Boundaries

Per-session catalogs do not provide network authority, ownership permissions, or separate committed worlds. See Multiplayer & Split-Screen.

Using this in a game?

Grid Placement v6.3.0 — full source, playable demos, commercial license

The guide above is the same setup the shipped demos use. Try the build in your browser before you buy it.