Grid Placement is a GDScript addon; it does not require a .NET/Mono export path. Most web-only failures come from project/export configuration rather than a separate web placement API.
What must be exported
Your web build needs every resource referenced by the placement setup, including:
res://addons/grid_placement/;- the active
GridPlacementBundleand settings; - placeable scenes and
ScenePlacementEntryresources; - placement profiles and custom rules;
- 2D terrain palettes/entries if terrain painting is used;
- 3D snap/support settings and provider scenes/resources if 3D is used;
- preview/indicator scenes and project-specific placement UI/assets.
If you use restrictive export filters, verify those folders/files are included. Prefer external .tres resources for important reusable configuration because dependencies are easier to inspect and diagnose than deeply nested embedded resources.
Pre-export checks
- Plugin enabled.
- Required Input Map actions exist.
- Placement bundle/settings load without runtime issues.
- Placeable entries reference valid
.tscnscenes. - Rules/profiles/resources used by the active catalog are included.
- Collision layers/masks and area/body flags match the target scenes.
- Non-interactive HUD controls do not consume placement input.
These are the same placement rules as desktop. Do not add web-specific placement logic unless you have a reproduced browser-only problem.
2D terrain boundary
If your game uses terrain painting, export the relevant TileSet, terrain palette/entries, and preview resources. Terrain painting in 6.0 is a 2D TileMapLayer feature; web export support does not imply 3D GridMap terrain editing.
3D object checks
If your game uses 3D placement, also verify the exported build contains and can load:
- the target
GridMap/mesh/collision resources; - GRID/SMOOTH entry footprints and snap profiles;
- CELL/EDGE/FACE/socket provider scenes/resources;
- physics/support collision layers used by slope/support validation.
Exercise the same representative 3D workflow you ship. Browser export does not change the supported GRID/SMOOTH/mount/slope contract.
Diagnose a web-only failure
| Symptom | Check first |
|---|---|
| Works in editor, missing content on web | Export filters and missing .tres / .tscn dependencies. |
| Placement rules appear absent | Rule/profile resources and the active bundle/catalog. |
| Object targeting fails | Collision layers/masks and body/area flags. |
| Terrain preview is missing | TileMapLayer, terrain resources, and preview wiring. |
| 3D target/support differs | Exported mesh/collision/provider resources and support masks. |
| Clicks do nothing | Input Map and UI mouse filtering. |
| Browser reports missing resources | Exported file list/path casing and referenced dependencies. |
Use the browser console/network panel when the failure looks like a missing file. Use Grid Placement runtime issues/logging when the resources exist but configuration is invalid.
Test the exported build
Before publishing a web build, exercise the workflows your game actually ships:
- load the exported build in a browser;
- place at least one object;
- verify invalid placement feedback;
- test manipulation if enabled;
- test 2D terrain painting if enabled;
- test representative 3D GRID/SMOOTH/mount/slope behavior if enabled;
- test save/restore if your web game persists placement state;
- check the browser console for missing-resource errors.
Repo maintainers should use the repository's current release/test scripts rather than copying a command from this guide; those scripts are the source of truth for the plugin's own certification.