Inherits: ConfirmationDialog < AcceptDialog < WindowDialog < Popup < Control < CanvasItem < Node < Object

Dialog for selecting files or directories in the filesystem.


FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. The FileDialog automatically sets its window title according to the mode. If you want to use a custom title, disable this by setting mode_overrides_title to false.


Access access 0
String current_dir "res://"
String current_file ""
String current_path "res://"
bool dialog_hide_on_ok false (parent override)
PoolStringArray filters PoolStringArray(  )
Mode mode 4
bool mode_overrides_title true
bool show_hidden_files false
String window_title "Save a File" (parent override)


void add_filter ( String filter )
void clear_filters ( )
void deselect_items ( )
LineEdit get_line_edit ( )
VBoxContainer get_vbox ( )
void invalidate ( )

Theme Properties

Texture file  
Color file_icon_modulate Color( 1, 1, 1, 1 )
Color files_disabled Color( 0, 0, 0, 0.7 )
Texture folder  
Color folder_icon_modulate Color( 1, 1, 1, 1 )
Texture parent_folder  
Texture reload  
Texture toggle_hidden  


Emitted when the user selects a directory.

  • file_selected ( String path )

Emitted when the user selects a file by double-clicking it or pressing the OK button.

Emitted when the user selects multiple files.


enum Mode:

  • MODE_OPEN_FILE = 0 --- The dialog allows selecting one, and only one file.
  • MODE_OPEN_FILES = 1 --- The dialog allows selecting multiple files.
  • MODE_OPEN_DIR = 2 --- The dialog only allows selecting a directory, disallowing the selection of any file.
  • MODE_OPEN_ANY = 3 --- The dialog allows selecting one file or directory.
  • MODE_SAVE_FILE = 4 --- The dialog will warn when a file exists.

enum Access:

  • ACCESS_RESOURCES = 0 --- The dialog only allows accessing files under the Resource path (res://).
  • ACCESS_USERDATA = 1 --- The dialog only allows accessing files under user data path (user://).
  • ACCESS_FILESYSTEM = 2 --- The dialog allows accessing files on the whole file system.

Property Descriptions

Default 0
Setter set_access(value)
Getter get_access()

The file system access scope. See enum Access constants.

Warning: Currently, in sandboxed environments such as HTML5 builds or sandboxed macOS apps, FileDialog cannot access the host file system. See godot-proposals#1123.

Default "res://"
Setter set_current_dir(value)
Getter get_current_dir()

The current working directory of the file dialog.

Default ""
Setter set_current_file(value)
Getter get_current_file()

The currently selected file of the file dialog.

Default "res://"
Setter set_current_path(value)
Getter get_current_path()

The currently selected file path of the file dialog.

Default PoolStringArray(  )
Setter set_filters(value)
Getter get_filters()

The available file type filters. For example, this shows only .png and .gd files: set_filters(PoolStringArray(["*.png ; PNG Images","*.gd ; GDScript Files"])).

Default 4
Setter set_mode(value)
Getter get_mode()

The dialog's open or save mode, which affects the selection behavior. See enum Mode constants.

  • bool mode_overrides_title
Default true
Setter set_mode_overrides_title(value)
Getter is_mode_overriding_title()

If true, changing the Mode property will set the window title accordingly (e.g. setting mode to MODE_OPEN_FILE will change the window title to "Open a File").

  • bool show_hidden_files
Default false
Setter set_show_hidden_files(value)
Getter is_showing_hidden_files()

If true, the dialog will show hidden files.

Method Descriptions

  • void add_filter ( String filter )

Adds filter as a custom filter; filter should be of the form "filename.extension ; Description". For example, "*.png ; PNG Images".

  • void clear_filters ( )

Clear all the added filters in the dialog.

  • void deselect_items ( )

Clear currently selected items in the dialog.

Returns the LineEdit for the selected file.

Returns the vertical box container of the dialog, custom controls can be added to it.

  • void invalidate ( )

Invalidate and update the current dialog content list.