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: Node2D < CanvasItem < Node < Object

A parallax scrolling layer to be used with ParallaxBackground.


A ParallaxLayer must be the child of a ParallaxBackground node. Each ParallaxLayer can be set to move at different speeds relative to the camera movement or the ParallaxBackground.scroll_offset value.

This node's children will be affected by its scroll offset.

Note: Any changes to this node's position and scale made after it enters the scene will be ignored.




Vector2(0, 0)



Vector2(0, 0)



Vector2(1, 1)

Property Descriptions

Vector2 motion_mirroring = Vector2(0, 0)

The ParallaxLayer's Texture2D mirroring. Useful for creating an infinite scrolling background. If an axis is set to 0, the Texture2D will not be mirrored.

If the length of the viewport axis is bigger than twice the mirrored axis size, it will not repeat infinitely, as the parallax layer only draws 2 instances of the texture at any one time.

Vector2 motion_offset = Vector2(0, 0)

  • void set_motion_offset ( Vector2 value )

  • Vector2 get_motion_offset ( )

The ParallaxLayer's offset relative to the parent ParallaxBackground's ParallaxBackground.scroll_offset.

Vector2 motion_scale = Vector2(1, 1)

  • void set_motion_scale ( Vector2 value )

  • Vector2 get_motion_scale ( )

Multiplies the ParallaxLayer's motion. If an axis is set to 0, it will not scroll.