Development docs. This page describes the unreleased 6.3 build.
6.3.0 retires one word. Everything that used to be a placeable is a scene
entry (ScenePlacementEntry) or simply an entry in prose and in code.
There is no deprecated alias and no compatibility shim: the old names are gone
in 6.3, on purpose, so a project that still says selected_placeable fails
loudly at parse time instead of silently reading a dead property.
One-to-one mapping
| 6.2 | 6.3 |
|---|---|
PlacementSession.selected_placeable |
PlacementSession.selected_entry |
PlacementSession.selected_placeable_id |
PlacementSession.selected_entry_id |
has_selected_placeable |
has_selected_entry |
get_active_placeable() / set_active_placeable() |
get_active_entry() / set_active_entry() |
signal placeable_selected(entry) |
signal entry_selected(entry) |
placeable_selected_callback (host/session registration) |
entry_selected_callback |
placeable_path, placeable_data, placeable_ui |
entry_path, entry_data, entry_ui |
individual_placeables |
individual_entries |
add_placeable_instance() |
add_entry_instance() |
sync_to_placeable(), restore_after_placeable() |
sync_to_entry(), restore_after_entry() |
Parameters renamed with the same rule: p_placeable → p_entry. The
word unplaceable is a different word (an adjective about a cell, not the
noun) and keeps its spelling.
Demo resources are renamed too: placeable_<name>.tres → entry_<name>.tres.
If you copied one into your project, rename it; the uid:// inside a copied
.tres still resolves, but the path a catalog stores will not.
Why a gate
A rename rots the moment someone adds one new call site with the old name, and
the compiler cannot catch that because the old name is a perfectly valid
identifier. res://test/grid_placement/contracts/naming/legacy_placeable_name_test.gd
scans the addon source, the demos and the guides for \bplaceable(s)?\b and
fails the tree on any hit. Its allowlist is three entries, each naming why it
survives: the archived guides/v5/ set, the v6-2 migration guide (it describes
the old API), and this page.
Migrating a 6.2 project
- Rename every
selected_placeable/has_selected_placeable/get_active_placeablereference with the table above. - Rename
placeable_*resources you copied into your project. - Reconnect anything bound to the
placeable_selectedsignal; the signal is nowentry_selectedand its argument is unchanged. - Nothing else changed: the placement flow, profiles, catalog and mounting behaviour are the same.
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.