Static 5.x → 6.x conversion data for the editor migration entry. Every mapping here is deterministic and textual: the converter rewrites .tres/.tscn files without loading legacy resources, so migration completes even when no deprecated runtime class exists in the installed 6.0 addon. Source of truth: migration/mapping-5x-to-6x.md. Adding a new legacy shape means adding it here (one-file change, acceptance).
Source: addons/grid_placement/migration/project_migration_map.gd
Syntax
class ProjectMigrationMap extends RefCountedMembers
| Name | Kind | Summary |
|---|---|---|
ADDON_ROOT_5X | Field | |
ADDON_ROOT_6X | Field | |
EXTRA_PATH_REWRITES | Field | Exact full-path rewrites that are not relative-script mappings (project settings, plugin enablement). |
DEV_ADDON_PATH_PREFIXES | Field | Dev-only / editor-only addons that are NOT shipped with the 6.0 plugin. A converted project will not have these installed, so any ext_resource pointing into them (and the nodes that instance them, plus their enabled-plugin entries) must be stripped or the converted project fails to load with "referenced non-existent resource". grid_building itself is handled by EXTRA_PATH_REWRITES / SCRIPT_REWRITES, not listed here. |
SCRIPT_REWRITES | Field | Legacy relative script path (under addons/grid_building/) → canonical 6.0 relative path (under addons/grid_placement/). Same-relative-path entries are classes that only moved with the addon root rename. |
CLASS_RENAMES | Field | script_class= renames (serializer-written class names in .tres headers). |
STALE_5X_UIDS | Field | Known stale 5.x UIDs (from the 5.0.9 fixtures) → legacy relative path. Used to flag metadata/_custom_type_script and uid= attributes that no 6.0 project can resolve. Unlisted stale UIDs still get a generic fail-closed diagnostic when paired with a legacy path. |
FIELD_RENAMES | Field | Field renames keyed by CANONICAL relative script path. Applied to the [resource]/node property lines of files whose script converted to that class. (tags→profiles on entries; config→grid_placement_bundle on the composition root; composition_container→session on the injector.) |
SPEND_RULE_CANONICAL | Field | Canonical relative paths needing the SpendMaterialsRuleById structural transform (ResourceStack subresources → costs dictionary). Handled by the apply phase; discovery reports them as STRUCTURAL findings. |
SPEND_RULE_LEGACY | Field | |
NODE_DELETION_SCRIPTS | Field | Scene node scripts ABSORBED by the 6.0 host service group. Nodes carrying these scripts (and their children) are deleted at apply time; discovery reports them as NODE_DELETION findings. |
ALIAS_CLASS_RENAMES | Field | Class-name renames for SCRIPT conversion (.gd files): every removed 5.x alias class → its canonical 6.x class. Applied as word-boundary identifier rewrites by the applier; discovery reports each site. |
SCRIPT_METHOD_RENAMES | Field | Method renames for script conversion: 5.x injection/override hooks whose names changed in the 6.x API. Applied word-boundary alongside ALIAS_CLASS_RENAMES. (Demo-private _gb_ helpers are NOT renamed — they are internally consistent within project scripts.) |
NODE_DELETION_INSTANCE_SCENES | Field | Legacy demo-owned system scenes whose instances are absorbed the same way (full res:// paths). Instances — and every node parented under them — are deleted at apply time. |
UNSUPPORTED_PREFIXES | Field | Unsupported shapes: path prefixes with no 6.0 equivalent. Discovery fails closed with the guidance below; apply never touches these files. |
EXCLUSION_PREFIXES | Field | Reported-exclusion prefixes (user disposition 2026-07-27): referenced plugins with no Grid Placement 6.0 equivalent. These are REPORTED in every dry run and in the apply report, but do NOT block conversion — the affected demo keeps the reference, and the clean-load proof records it as an accepted limitation. The converter never rewrites these paths. |
canonical_uid | Method | |
rewrite_path | Method | |
rename_class | Method |