:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the VisualScriptCustomNode.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_VisualScriptCustomNode: VisualScriptCustomNode ====================== **Inherits:** :ref:`VisualScriptNode` **<** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` A scripted Visual Script node. Description ----------- A custom Visual Script node which can be scripted in powerful ways. Methods ------- +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_caption` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_category` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_input_value_port_count` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_input_value_port_hint` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_input_value_port_hint_string` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_input_value_port_name` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_input_value_port_type` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_output_sequence_port_count` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_output_sequence_port_text` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_output_value_port_count` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_output_value_port_hint` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_output_value_port_hint_string` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_output_value_port_name` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_output_value_port_type` **(** :ref:`int` idx **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_text` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_working_memory_size` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_has_input_sequence_port` **(** **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`_step` **(** :ref:`Array` inputs, :ref:`Array` outputs, :ref:`int` start_mode, :ref:`Array` working_mem **)** |virtual| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Enumerations ------------ .. _enum_VisualScriptCustomNode_StartMode: .. _class_VisualScriptCustomNode_constant_START_MODE_BEGIN_SEQUENCE: .. _class_VisualScriptCustomNode_constant_START_MODE_CONTINUE_SEQUENCE: .. _class_VisualScriptCustomNode_constant_START_MODE_RESUME_YIELD: enum **StartMode**: - **START_MODE_BEGIN_SEQUENCE** = **0** --- The start mode used the first time when :ref:`_step` is called. - **START_MODE_CONTINUE_SEQUENCE** = **1** --- The start mode used when :ref:`_step` is called after coming back from a :ref:`STEP_PUSH_STACK_BIT`. - **START_MODE_RESUME_YIELD** = **2** --- The start mode used when :ref:`_step` is called after resuming from :ref:`STEP_YIELD_BIT`. Constants --------- .. _class_VisualScriptCustomNode_constant_STEP_PUSH_STACK_BIT: .. _class_VisualScriptCustomNode_constant_STEP_GO_BACK_BIT: .. _class_VisualScriptCustomNode_constant_STEP_NO_ADVANCE_BIT: .. _class_VisualScriptCustomNode_constant_STEP_EXIT_FUNCTION_BIT: .. _class_VisualScriptCustomNode_constant_STEP_YIELD_BIT: - **STEP_PUSH_STACK_BIT** = **16777216** --- Hint used by :ref:`_step` to tell that control should return to it when there is no other node left to execute. This is used by :ref:`VisualScriptCondition` to redirect the sequence to the "Done" port after the ``true``/``false`` branch has finished execution. - **STEP_GO_BACK_BIT** = **33554432** --- Hint used by :ref:`_step` to tell that control should return back, either hitting a previous :ref:`STEP_PUSH_STACK_BIT` or exiting the function. - **STEP_NO_ADVANCE_BIT** = **67108864** - **STEP_EXIT_FUNCTION_BIT** = **134217728** --- Hint used by :ref:`_step` to tell that control should stop and exit the function. - **STEP_YIELD_BIT** = **268435456** --- Hint used by :ref:`_step` to tell that the function should be yielded. Using this requires you to have at least one working memory slot, which is used for the :ref:`VisualScriptFunctionState`. Method Descriptions ------------------- .. _class_VisualScriptCustomNode_method__get_caption: - :ref:`String` **_get_caption** **(** **)** |virtual| Return the node's title. ---- .. _class_VisualScriptCustomNode_method__get_category: - :ref:`String` **_get_category** **(** **)** |virtual| Return the node's category. ---- .. _class_VisualScriptCustomNode_method__get_input_value_port_count: - :ref:`int` **_get_input_value_port_count** **(** **)** |virtual| Return the count of input value ports. ---- .. _class_VisualScriptCustomNode_method__get_input_value_port_hint: - :ref:`int` **_get_input_value_port_hint** **(** :ref:`int` idx **)** |virtual| Return the specified input port's hint. See the :ref:`PropertyHint` hints. ---- .. _class_VisualScriptCustomNode_method__get_input_value_port_hint_string: - :ref:`String` **_get_input_value_port_hint_string** **(** :ref:`int` idx **)** |virtual| Return the specified input port's hint string. ---- .. _class_VisualScriptCustomNode_method__get_input_value_port_name: - :ref:`String` **_get_input_value_port_name** **(** :ref:`int` idx **)** |virtual| Return the specified input port's name. ---- .. _class_VisualScriptCustomNode_method__get_input_value_port_type: - :ref:`int` **_get_input_value_port_type** **(** :ref:`int` idx **)** |virtual| Return the specified input port's type. See the :ref:`Variant.Type` values. ---- .. _class_VisualScriptCustomNode_method__get_output_sequence_port_count: - :ref:`int` **_get_output_sequence_port_count** **(** **)** |virtual| Return the amount of output **sequence** ports. ---- .. _class_VisualScriptCustomNode_method__get_output_sequence_port_text: - :ref:`String` **_get_output_sequence_port_text** **(** :ref:`int` idx **)** |virtual| Return the specified **sequence** output's name. ---- .. _class_VisualScriptCustomNode_method__get_output_value_port_count: - :ref:`int` **_get_output_value_port_count** **(** **)** |virtual| Return the amount of output value ports. ---- .. _class_VisualScriptCustomNode_method__get_output_value_port_hint: - :ref:`int` **_get_output_value_port_hint** **(** :ref:`int` idx **)** |virtual| Return the specified output port's hint. See the :ref:`PropertyHint` hints. ---- .. _class_VisualScriptCustomNode_method__get_output_value_port_hint_string: - :ref:`String` **_get_output_value_port_hint_string** **(** :ref:`int` idx **)** |virtual| Return the specified output port's hint string. ---- .. _class_VisualScriptCustomNode_method__get_output_value_port_name: - :ref:`String` **_get_output_value_port_name** **(** :ref:`int` idx **)** |virtual| Return the specified output port's name. ---- .. _class_VisualScriptCustomNode_method__get_output_value_port_type: - :ref:`int` **_get_output_value_port_type** **(** :ref:`int` idx **)** |virtual| Return the specified output port's type. See the :ref:`Variant.Type` values. ---- .. _class_VisualScriptCustomNode_method__get_text: - :ref:`String` **_get_text** **(** **)** |virtual| Return the custom node's text, which is shown right next to the input **sequence** port (if there is none, on the place that is usually taken by it). ---- .. _class_VisualScriptCustomNode_method__get_working_memory_size: - :ref:`int` **_get_working_memory_size** **(** **)** |virtual| Return the size of the custom node's working memory. See :ref:`_step` for more details. ---- .. _class_VisualScriptCustomNode_method__has_input_sequence_port: - :ref:`bool` **_has_input_sequence_port** **(** **)** |virtual| Return whether the custom node has an input **sequence** port. ---- .. _class_VisualScriptCustomNode_method__step: - :ref:`Variant` **_step** **(** :ref:`Array` inputs, :ref:`Array` outputs, :ref:`int` start_mode, :ref:`Array` working_mem **)** |virtual| Execute the custom node's logic, returning the index of the output sequence port to use or a :ref:`String` when there is an error. The ``inputs`` array contains the values of the input ports. ``outputs`` is an array whose indices should be set to the respective outputs. The ``start_mode`` is usually :ref:`START_MODE_BEGIN_SEQUENCE`, unless you have used the ``STEP_*`` constants. ``working_mem`` is an array which can be used to persist information between runs of the custom node. The size needs to be predefined using :ref:`_get_working_memory_size`. When returning, you can mask the returned value with one of the ``STEP_*`` constants. .. |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.)`