Work in progress

Godot documentation is being updated to reflect the latest changes in version 4.0. Some documentation pages may still state outdated information. This banner will tell you if you're reading one of such pages.

The contents of this page are up to date. If you can still find outdated information, please open an issue.


Inherits: Node3D < Node < Object

Editor-only node for defining a collision polygon in 3D space.


Allows editing a concave or convex collision polygon's vertices on a selected plane. Can also set a depth perpendicular to that plane. This class is only available in the editor. It will not appear in the scene tree at run-time. Creates several ConvexPolygonShape3Ds at run-time to represent the original polygon using convex decomposition.

Note: Since this is an editor-only helper, properties modified during gameplay will have no effect.

Warning: A non-uniformly scaled CollisionPolygon3D node will probably not function as expected. Please make sure to keep its scale uniform (i.e. the same on all axes), and change its polygon's vertices instead.














Property Descriptions

float depth = 1.0

  • void set_depth ( float value )

  • float get_depth ( )

Length that the resulting collision extends in either direction perpendicular to its polygon.

bool disabled = false

  • void set_disabled ( bool value )

  • bool is_disabled ( )

If true, no collision will be produced.

float margin = 0.04

  • void set_margin ( float value )

  • float get_margin ( )

The collision margin for the generated Shape3D. See Shape3D.margin for more details.

PackedVector2Array polygon = PackedVector2Array()

Array of vertices which define the polygon.

Note: The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the polygon member.