Inspector Extender
A plugin for Godot 4 to extend the Inspector using just comments above properties. Nodes, Resources, and even non-tool scripts supported!
It allows the user to do this:
...with just a bunch of comments, like this:
Comments must be placed any number of lines before the property they must be applied to (place anything in between, just not other properties)
Supported commentributes:
Extras
@@message(message_func
), @@message_warning(message_func
), @@message_error(message_func
)
Call message_func
that returns a message string to display a message. When the function returns and empty string, no message is displayed.
@@buttons(params
)
Displays a button group. The params
, comma-separated, must contain expressions (like set_position(position + Vector2(9, 20))
), preceded by a name (inside quotation marks " "
) and optionally a color code (like #009900
)
To display a red "Reset" button that calls _reset
, write: # @@buttons("Reset", #990000, _reset())
.
Note: Assignment =
+=
*=
-=
/=
not supported, use setter functions instead.
Note: Translating nodes in viewport has unpredictable behaviour. Clues on fixes appreciated.
Tables
Note: if array is empty, properties will be pinned. This is done automatically and required for it to work properly.
@@resource_table(properties...
)
Displays list of resources as a table. Optionally, list properties
to display.
@@dict_table(properties...
)
Displays list of dictionaries as a table. The properties
, comma-separated, must be in format of key : type
, where key
is the dictionary's key and type
is the name of its datatype.
To store a table of dictionaries each containing a number a
, a 2d-vector b
and a texture c
, write # @@dict_table( a : int, b : Vector2, c : Texture2D)
.
@@array_table(properties...
)
Displays list of arrays as a table. Similar to # @@dict_table
.
@@multi_array_table(properties_to_show...
)
Displays several typed arrays as a table. properties_to_show
is a comma-separated list of properties that store arrays.
Arrays must have a type hint (var array : Array[float]
, not var array : Array
)
Other
@@scroll_box(height
)
Puts a table into a scrollable container of maximum size height
.
@@show_if(expression
)
Hides property if expression
evaluates to false
.
@@value_dropdown(expression
)
An option button that evaluates expression
to get values to choose from. The expression may return an Array or a Dictionary.
@@tabs()
Displays enum as tabs. Can be used to speed up enum switching, or with @@show_if
to only show a group when enum is of a specific value.
More commentributes coming soon.
Made by Don Tnowe in 2023.
Copying and Modification is allowed in accordance to the MIT license, full text is included.