Diagnostics
GDScript has no compile-time checking for string attributes, so mistakes are reported loudly instead.
Everything goes to the Output panel, prefixed [NaughtyAttributes], in the form:
{script_path}.{property} - {key}: {message}
For example:
[NaughtyAttributes] res://scripts/player.gd.health - min_value: unknown identifier "floor_hp"
A typo names the script, the property and the attribute rather than silently doing nothing.
What is reported
An unknown attribute key. It does not claim the property, which is left to Godot.
An attribute whose arguments do not parse, or whose expression does not compile. The attribute is dropped.
An expression that fails at evaluation time. A failing condition counts as satisfied, so a property stays visible and enabled, and a validator skips its correction.
A second drawer attribute on one property, or a second built-in hint in one hint text. The last one wins and the displaced one is reported.
A callback named by on_value_changed that the object cannot call.
Note
A message drawn beside a property by require is not an error and is never logged. It is the attribute working as written over wrong data.
Note
If a failing expression contains a call, the message ends with a hint: without @tool on the script,
that the call needs it; with @tool, to check the method’s name and arguments.
See Writing Attributes.