:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the VisualScript.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_VisualScript: VisualScript ============ **Inherits:** :ref:`Script` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` A script implemented in the Visual Script programming environment. Description ----------- A script implemented in the Visual Script programming environment. The script extends the functionality of all objects that instance it. \ :ref:`Object.set_script` extends an existing object, if that object's class matches one of the script's base classes. You are most likely to use this class via the Visual Script editor or when writing plugins for it. Tutorials --------- - :doc:`VisualScript documentation index <../tutorials/scripting/visual_script/index>` Methods ------- +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_custom_signal` **(** :ref:`StringName` name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_function` **(** :ref:`StringName` name, :ref:`int` func_node_id **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_node` **(** :ref:`int` id, :ref:`VisualScriptNode` node, :ref:`Vector2` position=Vector2(0, 0) **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_variable` **(** :ref:`StringName` name, :ref:`Variant` default_value=null, :ref:`bool` export=false **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`custom_signal_add_argument` **(** :ref:`StringName` name, :ref:`Variant.Type` type, :ref:`String` argname, :ref:`int` index=-1 **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`custom_signal_get_argument_count` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`custom_signal_get_argument_name` **(** :ref:`StringName` name, :ref:`int` argidx **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant.Type` | :ref:`custom_signal_get_argument_type` **(** :ref:`StringName` name, :ref:`int` argidx **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`custom_signal_remove_argument` **(** :ref:`StringName` name, :ref:`int` argidx **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`custom_signal_set_argument_name` **(** :ref:`StringName` name, :ref:`int` argidx, :ref:`String` argname **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`custom_signal_set_argument_type` **(** :ref:`StringName` name, :ref:`int` argidx, :ref:`Variant.Type` type **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`custom_signal_swap_argument` **(** :ref:`StringName` name, :ref:`int` argidx, :ref:`int` withidx **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`data_connect` **(** :ref:`int` from_node, :ref:`int` from_port, :ref:`int` to_node, :ref:`int` to_port **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`data_disconnect` **(** :ref:`int` from_node, :ref:`int` from_port, :ref:`int` to_node, :ref:`int` to_port **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_function_node_id` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`VisualScriptNode` | :ref:`get_node` **(** :ref:`int` id **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_node_position` **(** :ref:`int` id **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_scroll` **(** **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_variable_default_value` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_variable_export` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`get_variable_info` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_custom_signal` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_data_connection` **(** :ref:`int` from_node, :ref:`int` from_port, :ref:`int` to_node, :ref:`int` to_port **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_function` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_node` **(** :ref:`int` id **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_sequence_connection` **(** :ref:`int` from_node, :ref:`int` from_output, :ref:`int` to_node **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_variable` **(** :ref:`StringName` name **)** |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_custom_signal` **(** :ref:`StringName` name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_function` **(** :ref:`StringName` name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_node` **(** :ref:`int` id **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_variable` **(** :ref:`StringName` name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rename_custom_signal` **(** :ref:`StringName` name, :ref:`StringName` new_name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rename_function` **(** :ref:`StringName` name, :ref:`StringName` new_name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rename_variable` **(** :ref:`StringName` name, :ref:`StringName` new_name **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`sequence_connect` **(** :ref:`int` from_node, :ref:`int` from_output, :ref:`int` to_node **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`sequence_disconnect` **(** :ref:`int` from_node, :ref:`int` from_output, :ref:`int` to_node **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_instance_base_type` **(** :ref:`StringName` type **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_node_position` **(** :ref:`int` id, :ref:`Vector2` position **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_scroll` **(** :ref:`Vector2` ofs **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_variable_default_value` **(** :ref:`StringName` name, :ref:`Variant` value **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_variable_export` **(** :ref:`StringName` name, :ref:`bool` enable **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_variable_info` **(** :ref:`StringName` name, :ref:`Dictionary` value **)** | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Signals ------- .. _class_VisualScript_signal_node_ports_changed: - **node_ports_changed** **(** :ref:`int` id **)** Emitted when the ports of a node are changed. Method Descriptions ------------------- .. _class_VisualScript_method_add_custom_signal: - void **add_custom_signal** **(** :ref:`StringName` name **)** Add a custom signal with the specified name to the VisualScript. ---- .. _class_VisualScript_method_add_function: - void **add_function** **(** :ref:`StringName` name, :ref:`int` func_node_id **)** Add a function with the specified name to the VisualScript, and assign the root :ref:`VisualScriptFunction` node's id as ``func_node_id``. ---- .. _class_VisualScript_method_add_node: - void **add_node** **(** :ref:`int` id, :ref:`VisualScriptNode` node, :ref:`Vector2` position=Vector2(0, 0) **)** Add a node to the VisualScript. ---- .. _class_VisualScript_method_add_variable: - void **add_variable** **(** :ref:`StringName` name, :ref:`Variant` default_value=null, :ref:`bool` export=false **)** Add a variable to the VisualScript, optionally giving it a default value or marking it as exported. ---- .. _class_VisualScript_method_custom_signal_add_argument: - void **custom_signal_add_argument** **(** :ref:`StringName` name, :ref:`Variant.Type` type, :ref:`String` argname, :ref:`int` index=-1 **)** Add an argument to a custom signal added with :ref:`add_custom_signal`. ---- .. _class_VisualScript_method_custom_signal_get_argument_count: - :ref:`int` **custom_signal_get_argument_count** **(** :ref:`StringName` name **)** |const| Get the count of a custom signal's arguments. ---- .. _class_VisualScript_method_custom_signal_get_argument_name: - :ref:`String` **custom_signal_get_argument_name** **(** :ref:`StringName` name, :ref:`int` argidx **)** |const| Get the name of a custom signal's argument. ---- .. _class_VisualScript_method_custom_signal_get_argument_type: - :ref:`Variant.Type` **custom_signal_get_argument_type** **(** :ref:`StringName` name, :ref:`int` argidx **)** |const| Get the type of a custom signal's argument. ---- .. _class_VisualScript_method_custom_signal_remove_argument: - void **custom_signal_remove_argument** **(** :ref:`StringName` name, :ref:`int` argidx **)** Remove a specific custom signal's argument. ---- .. _class_VisualScript_method_custom_signal_set_argument_name: - void **custom_signal_set_argument_name** **(** :ref:`StringName` name, :ref:`int` argidx, :ref:`String` argname **)** Rename a custom signal's argument. ---- .. _class_VisualScript_method_custom_signal_set_argument_type: - void **custom_signal_set_argument_type** **(** :ref:`StringName` name, :ref:`int` argidx, :ref:`Variant.Type` type **)** Change the type of a custom signal's argument. ---- .. _class_VisualScript_method_custom_signal_swap_argument: - void **custom_signal_swap_argument** **(** :ref:`StringName` name, :ref:`int` argidx, :ref:`int` withidx **)** Swap two of the arguments of a custom signal. ---- .. _class_VisualScript_method_data_connect: - void **data_connect** **(** :ref:`int` from_node, :ref:`int` from_port, :ref:`int` to_node, :ref:`int` to_port **)** Connect two data ports. The value of ``from_node``'s ``from_port`` would be fed into ``to_node``'s ``to_port``. ---- .. _class_VisualScript_method_data_disconnect: - void **data_disconnect** **(** :ref:`int` from_node, :ref:`int` from_port, :ref:`int` to_node, :ref:`int` to_port **)** Disconnect two data ports previously connected with :ref:`data_connect`. ---- .. _class_VisualScript_method_get_function_node_id: - :ref:`int` **get_function_node_id** **(** :ref:`StringName` name **)** |const| Returns the id of a function's entry point node. ---- .. _class_VisualScript_method_get_node: - :ref:`VisualScriptNode` **get_node** **(** :ref:`int` id **)** |const| Returns a node given its id. ---- .. _class_VisualScript_method_get_node_position: - :ref:`Vector2` **get_node_position** **(** :ref:`int` id **)** |const| Returns a node's position in pixels. ---- .. _class_VisualScript_method_get_scroll: - :ref:`Vector2` **get_scroll** **(** **)** |const| Returns the current position of the center of the screen. ---- .. _class_VisualScript_method_get_variable_default_value: - :ref:`Variant` **get_variable_default_value** **(** :ref:`StringName` name **)** |const| Returns the default (initial) value of a variable. ---- .. _class_VisualScript_method_get_variable_export: - :ref:`bool` **get_variable_export** **(** :ref:`StringName` name **)** |const| Returns whether a variable is exported. ---- .. _class_VisualScript_method_get_variable_info: - :ref:`Dictionary` **get_variable_info** **(** :ref:`StringName` name **)** |const| Returns the information for a given variable as a dictionary. The information includes its name, type, hint and usage. ---- .. _class_VisualScript_method_has_custom_signal: - :ref:`bool` **has_custom_signal** **(** :ref:`StringName` name **)** |const| Returns whether a signal exists with the specified name. ---- .. _class_VisualScript_method_has_data_connection: - :ref:`bool` **has_data_connection** **(** :ref:`int` from_node, :ref:`int` from_port, :ref:`int` to_node, :ref:`int` to_port **)** |const| Returns whether the specified data ports are connected. ---- .. _class_VisualScript_method_has_function: - :ref:`bool` **has_function** **(** :ref:`StringName` name **)** |const| Returns whether a function exists with the specified name. ---- .. _class_VisualScript_method_has_node: - :ref:`bool` **has_node** **(** :ref:`int` id **)** |const| Returns whether a node exists with the given id. ---- .. _class_VisualScript_method_has_sequence_connection: - :ref:`bool` **has_sequence_connection** **(** :ref:`int` from_node, :ref:`int` from_output, :ref:`int` to_node **)** |const| Returns whether the specified sequence ports are connected. ---- .. _class_VisualScript_method_has_variable: - :ref:`bool` **has_variable** **(** :ref:`StringName` name **)** |const| Returns whether a variable exists with the specified name. ---- .. _class_VisualScript_method_remove_custom_signal: - void **remove_custom_signal** **(** :ref:`StringName` name **)** Remove a custom signal with the given name. ---- .. _class_VisualScript_method_remove_function: - void **remove_function** **(** :ref:`StringName` name **)** Remove a specific function and its nodes from the script. ---- .. _class_VisualScript_method_remove_node: - void **remove_node** **(** :ref:`int` id **)** Remove the node with the specified id. ---- .. _class_VisualScript_method_remove_variable: - void **remove_variable** **(** :ref:`StringName` name **)** Remove a variable with the given name. ---- .. _class_VisualScript_method_rename_custom_signal: - void **rename_custom_signal** **(** :ref:`StringName` name, :ref:`StringName` new_name **)** Change the name of a custom signal. ---- .. _class_VisualScript_method_rename_function: - void **rename_function** **(** :ref:`StringName` name, :ref:`StringName` new_name **)** Change the name of a function. ---- .. _class_VisualScript_method_rename_variable: - void **rename_variable** **(** :ref:`StringName` name, :ref:`StringName` new_name **)** Change the name of a variable. ---- .. _class_VisualScript_method_sequence_connect: - void **sequence_connect** **(** :ref:`int` from_node, :ref:`int` from_output, :ref:`int` to_node **)** Connect two sequence ports. The execution will flow from of ``from_node``'s ``from_output`` into ``to_node``. Unlike :ref:`data_connect`, there isn't a ``to_port``, since the target node can have only one sequence port. ---- .. _class_VisualScript_method_sequence_disconnect: - void **sequence_disconnect** **(** :ref:`int` from_node, :ref:`int` from_output, :ref:`int` to_node **)** Disconnect two sequence ports previously connected with :ref:`sequence_connect`. ---- .. _class_VisualScript_method_set_instance_base_type: - void **set_instance_base_type** **(** :ref:`StringName` type **)** Set the base type of the script. ---- .. _class_VisualScript_method_set_node_position: - void **set_node_position** **(** :ref:`int` id, :ref:`Vector2` position **)** Set the node position in the VisualScript graph. ---- .. _class_VisualScript_method_set_scroll: - void **set_scroll** **(** :ref:`Vector2` ofs **)** Set the screen center to the given position. ---- .. _class_VisualScript_method_set_variable_default_value: - void **set_variable_default_value** **(** :ref:`StringName` name, :ref:`Variant` value **)** Change the default (initial) value of a variable. ---- .. _class_VisualScript_method_set_variable_export: - void **set_variable_export** **(** :ref:`StringName` name, :ref:`bool` enable **)** Change whether a variable is exported. ---- .. _class_VisualScript_method_set_variable_info: - void **set_variable_info** **(** :ref:`StringName` name, :ref:`Dictionary` value **)** Set a variable's info, using the same format as :ref:`get_variable_info`. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`