/Godot 3.2


Inherits: BaseButton < Control < CanvasItem < Node < Object

Texture-based button. Supports Pressed, Hover, Disabled and Focused states.


TextureButton has the same functionality as Button, except it uses sprites instead of Godot's Theme resource. It is faster to create, but it doesn't support localization like more complex Controls.

The "normal" state must contain a texture (texture_normal); other textures are optional.


bool expand false
StretchMode stretch_mode 0
BitMap texture_click_mask
Texture texture_disabled
Texture texture_focused
Texture texture_hover
Texture texture_normal
Texture texture_pressed


enum StretchMode:

  • STRETCH_SCALE = 0 --- Scale to fit the node's bounding rectangle.
  • STRETCH_TILE = 1 --- Tile inside the node's bounding rectangle.
  • STRETCH_KEEP = 2 --- The texture keeps its original size and stays in the bounding rectangle's top-left corner.
  • STRETCH_KEEP_CENTERED = 3 --- The texture keeps its original size and stays centered in the node's bounding rectangle.
  • STRETCH_KEEP_ASPECT = 4 --- Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio.
  • STRETCH_KEEP_ASPECT_CENTERED = 5 --- Scale the texture to fit the node's bounding rectangle, center it, and maintain its aspect ratio.
  • STRETCH_KEEP_ASPECT_COVERED = 6 --- Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits.

Property Descriptions

bool expand

Default false
Setter set_expand(value)
Getter get_expand()

If true, the texture stretches to the edges of the node's bounding rectangle using the stretch_mode. If false, the texture will not scale with the node.

StretchMode stretch_mode

Default 0
Setter set_stretch_mode(value)
Getter get_stretch_mode()

Controls the texture's behavior when you resize the node's bounding rectangle, only if expand is true. Set it to one of the StretchMode constants. See the constants to learn more.

BitMap texture_click_mask

Setter set_click_mask(value)
Getter get_click_mask()

Pure black and white BitMap image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.

Texture texture_disabled

Setter set_disabled_texture(value)
Getter get_disabled_texture()

Texture to display when the node is disabled. See BaseButton.disabled.

Texture texture_focused

Setter set_focused_texture(value)
Getter get_focused_texture()

Texture to display when the node has mouse or keyboard focus.

Texture texture_hover

Setter set_hover_texture(value)
Getter get_hover_texture()

Texture to display when the mouse hovers the node.

Texture texture_normal

Setter set_normal_texture(value)
Getter get_normal_texture()

Texture to display by default, when the node is not in the disabled, focused, hover or pressed state.

Texture texture_pressed

Setter set_pressed_texture(value)
Getter get_pressed_texture()

Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the BaseButton.shortcut key.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.